<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
  <uml:Model xmi:id="_7UbegF-3EeqrPafii89tnw" name="papyrus">
    <ownedComment xmi:type="uml:Comment" xmi:id="_GVWEgLymEeuvu5ayhp9Lzg" annotatedElement="_72rEYF_BEeqAAb4u4HLI7w">
      <body>ApartmentValueFunction uses all PartialValueFunction implementations and all enumerations</body>
    </ownedComment>
    <packageImport xmi:type="uml:PackageImport" xmi:id="_7ZRiQF-3EeqrPafii89tnw">
      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
    </packageImport>
    <packageImport xmi:type="uml:PackageImport" xmi:id="_Xmx4EIY_Eeqw9PFqD2CRLA">
      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#_0"/>
    </packageImport>
    <packagedElement xmi:type="uml:Package" xmi:id="_ZCtdkF--EeqAAb4u4HLI7w" name="importedTypes">
      <packagedElement xmi:type="uml:Package" xmi:id="_ZCursF--EeqAAb4u4HLI7w" name="org">
        <packagedElement xmi:type="uml:Package" xmi:id="_ZCv50F--EeqAAb4u4HLI7w" name="slf4j">
          <packagedElement xmi:type="uml:Class" xmi:id="_ZCxH8F--EeqAAb4u4HLI7w" name="Logger"/>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_ESCZEF_AEeqAAb4u4HLI7w" name="com">
        <packagedElement xmi:type="uml:Package" xmi:id="_ESCZEV_AEeqAAb4u4HLI7w" name="google">
          <packagedElement xmi:type="uml:Package" xmi:id="_ESCZEl_AEeqAAb4u4HLI7w" name="maps">
            <packagedElement xmi:type="uml:Class" xmi:id="_ESCZE1_AEeqAAb4u4HLI7w" name="GeoApiContext"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_ESE1UV_AEeqAAb4u4HLI7w" name="model">
              <packagedElement xmi:type="uml:Class" xmi:id="_ESE1Ul_AEeqAAb4u4HLI7w" name="LatLng"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_tRrmYV_AEeqAAb4u4HLI7w" name="errors">
              <packagedElement xmi:type="uml:Class" xmi:id="_tRrmYl_AEeqAAb4u4HLI7w" name="ApiException"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_SVWQ4F_CEeqAAb4u4HLI7w" name="common">
            <packagedElement xmi:type="uml:Package" xmi:id="_SVWQ4V_CEeqAAb4u4HLI7w" name="collect">
              <packagedElement xmi:type="uml:Class" xmi:id="_SVWQ4l_CEeqAAb4u4HLI7w" name="ImmutableMap"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_WnYGwF_CEeqAAb4u4HLI7w" name="Range"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_d1-bcV_CEeqAAb4u4HLI7w" name="ImmutableSortedMap"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_UBv2sJj5EeqYP-aD6j0wRg" name="javax">
        <packagedElement xmi:type="uml:Package" xmi:id="_UBwdwJj5EeqYP-aD6j0wRg" name="ws">
          <packagedElement xmi:type="uml:Package" xmi:id="_UBwdwZj5EeqYP-aD6j0wRg" name="rs">
            <packagedElement xmi:type="uml:Class" xmi:id="_UBwdwpj5EeqYP-aD6j0wRg" name="ClientErrorException"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_UCrq0Jj5EeqYP-aD6j0wRg" name="client">
              <packagedElement xmi:type="uml:Class" xmi:id="_UCsR4Jj5EeqYP-aD6j0wRg" name="Client"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_epGhwJwsEeqGkeU796yVmw" name="io">
        <packagedElement xmi:type="uml:Package" xmi:id="_epHv4JwsEeqGkeU796yVmw" name="github">
          <packagedElement xmi:type="uml:Package" xmi:id="_epI-AJwsEeqGkeU796yVmw" name="oliviercailloux">
            <packagedElement xmi:type="uml:Package" xmi:id="_epKzMJwsEeqGkeU796yVmw" name="y2018">
              <packagedElement xmi:type="uml:Package" xmi:id="_epMoYJwsEeqGkeU796yVmw" name="apartments">
                <packagedElement xmi:type="uml:Package" xmi:id="_epNPcJwsEeqGkeU796yVmw" name="apartment">
                  <packagedElement xmi:type="uml:Package" xmi:id="_epOdkJwsEeqGkeU796yVmw" name="Apartment">
                    <packagedElement xmi:type="uml:Class" xmi:id="_epPEoJwsEeqGkeU796yVmw" name="Builder"/>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Class" xmi:id="_rBU6AJ2dEeq5UMfZ1C8e7g" name="Apartment"/>
                </packagedElement>
              </packagedElement>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_gpoyMGrAEeqG6NsufvOKcA" name="diagrams">
      <packagedElement xmi:type="uml:Package" xmi:id="_i7vXsGrAEeqG6NsufvOKcA" name="UCD">
        <ownedComment xmi:type="uml:Comment" xmi:id="_jcwzEG6PEeqeldpgC1RaSg" annotatedElement="_72rEYF_BEeqAAb4u4HLI7w">
          <body>ApartmentValueFunction uses all PartialValueFunction implementations and all enumerations&#xD;
</body>
        </ownedComment>
        <packagedElement xmi:type="uml:Package" xmi:id="_2RqOEGrBEeqG6NsufvOKcA" name="UCD_CreateApartment">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_osnYYGSlEeqldqZ7K2B8Ig" name="CreateApartment">
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_ttc1AGSlEeqldqZ7K2B8Ig" name="Fill fields">
              <ownedUseCase xmi:type="uml:UseCase" xmi:id="_wQhOsGSlEeqldqZ7K2B8Ig" name="Fill the mandatory fields">
                <ownedUseCase xmi:type="uml:UseCase" xmi:id="_2CmiEGSlEeqldqZ7K2B8Ig" name="Fill the &quot;Title&quot; field"/>
                <ownedUseCase xmi:type="uml:UseCase" xmi:id="_5Cv5UGSlEeqldqZ7K2B8Ig" name="Fill the &quot;Address&quot; field"/>
                <ownedUseCase xmi:type="uml:UseCase" xmi:id="_8pc6QGSlEeqldqZ7K2B8Ig" name="Fill the &quot;Floor&quot; field"/>
              </ownedUseCase>
              <ownedUseCase xmi:type="uml:UseCase" xmi:id="_y62G8GSlEeqldqZ7K2B8Ig" name="Fill the optional fields">
                <ownedComment xmi:type="uml:Comment" xmi:id="_knfEIGSnEeqldqZ7K2B8Ig" annotatedElement="_y62G8GSlEeqldqZ7K2B8Ig">
                  <body>Elements such as the number of bedrooms</body>
                </ownedComment>
                <extend xmi:type="uml:Extend" xmi:id="_pxb18GSmEeqldqZ7K2B8Ig" extendedCase="_ttc1AGSlEeqldqZ7K2B8Ig"/>
              </ownedUseCase>
            </ownedUseCase>
          </packagedElement>
          <packagedElement xmi:type="uml:Usage" xmi:id="_v448YGSmEeqldqZ7K2B8Ig" client="_wQhOsGSlEeqldqZ7K2B8Ig" supplier="_ttc1AGSlEeqldqZ7K2B8Ig"/>
          <packagedElement xmi:type="uml:Usage" xmi:id="_2T87UGSmEeqldqZ7K2B8Ig" client="_2CmiEGSlEeqldqZ7K2B8Ig" supplier="_wQhOsGSlEeqldqZ7K2B8Ig"/>
          <packagedElement xmi:type="uml:Usage" xmi:id="_6vst4GSmEeqldqZ7K2B8Ig" client="_5Cv5UGSlEeqldqZ7K2B8Ig" supplier="_wQhOsGSlEeqldqZ7K2B8Ig"/>
          <packagedElement xmi:type="uml:Usage" xmi:id="__Vdw4GrBEeqG6NsufvOKcA" client="_8pc6QGSlEeqldqZ7K2B8Ig" supplier="_wQhOsGSlEeqldqZ7K2B8Ig"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_FaoYUGrCEeqG6NsufvOKcA" name="UCD_AskOpinionForUtility">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_Pt_w8GSgEeqgR6r_D9TUsQ" name="AskOpinionForUtility">
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_gesG8GSgEeqgR6r_D9TUsQ" name="Find an apartment"/>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_jmovUGSgEeqgR6r_D9TUsQ" name="Fill the number of bedrooms">
              <extend xmi:type="uml:Extend" xmi:id="_uuZ4gGShEeqgR6r_D9TUsQ" extendedCase="_gesG8GSgEeqgR6r_D9TUsQ"/>
            </ownedUseCase>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_oXWFQGSgEeqgR6r_D9TUsQ" name="Fill the superficy">
              <extend xmi:type="uml:Extend" xmi:id="_uBcr4GShEeqgR6r_D9TUsQ" extendedCase="_gesG8GSgEeqgR6r_D9TUsQ"/>
            </ownedUseCase>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_saPS8GSgEeqgR6r_D9TUsQ" name="Check most important criteria">
              <extend xmi:type="uml:Extend" xmi:id="_s0RHEGShEeqgR6r_D9TUsQ" extendedCase="_gesG8GSgEeqgR6r_D9TUsQ"/>
            </ownedUseCase>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_vfArgGSgEeqgR6r_D9TUsQ" name="Display results">
              <extend xmi:type="uml:Extend" xmi:id="_zo1LIGShEeqgR6r_D9TUsQ" extendedCase="_gesG8GSgEeqgR6r_D9TUsQ"/>
            </ownedUseCase>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_yGayoGSgEeqgR6r_D9TUsQ" name="Select an apartment">
              <extend xmi:type="uml:Extend" xmi:id="_1_03sGShEeqgR6r_D9TUsQ" extendedCase="_vfArgGSgEeqgR6r_D9TUsQ"/>
            </ownedUseCase>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_RYNkoGrCEeqG6NsufvOKcA" name="UCD_UseApartmentRentalPlatform">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_TPRn4GS3EeqTxqp8Bmjtjg" name="GlobalUseCase" useCase="_fIsF4GS3EeqTxqp8Bmjtjg _czcs0GS3EeqTxqp8Bmjtjg _oYvPkIS6EeuzdriENguzmA _rB2xcIS7EeuzdriENguzmA _C9OZ4ITGEeugKObI8pgoGA _K5JuoITGEeugKObI8pgoGA _Io6xYITGEeugKObI8pgoGA">
            <ownedRule xmi:type="uml:Constraint" xmi:id="_uAj5cJifEeupk9giDf-csg" name="Constraint" constrainedElement="_fcu5EJieEeupk9giDf-csg _TeQkQIS7EeuzdriENguzmA">
              <specification xmi:type="uml:LiteralString" xmi:id="__VsuYJihEeupk9giDf-csg" name="XOR" value="XOR"/>
            </ownedRule>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_czcs0GS3EeqTxqp8Bmjtjg" name="See ordered apartments' list" subject="_TPRn4GS3EeqTxqp8Bmjtjg"/>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_fIsF4GS3EeqTxqp8Bmjtjg" name="Set preferences" subject="_TPRn4GS3EeqTxqp8Bmjtjg"/>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_oYvPkIS6EeuzdriENguzmA" name="Generate database statistics" visibility="public" subject="_TPRn4GS3EeqTxqp8Bmjtjg"/>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_rB2xcIS7EeuzdriENguzmA" name="Compare 2 apartments using SpiderPlot" subject="_TPRn4GS3EeqTxqp8Bmjtjg">
              <extensionPoint xmi:type="uml:ExtensionPoint" xmi:id="_vVR7kJidEeupk9giDf-csg" name="ExtensionPoint1"/>
              <extensionPoint xmi:type="uml:ExtensionPoint" xmi:id="_V-hSMJieEeupk9giDf-csg" name="ExtensionPoint2"/>
            </ownedUseCase>
            <ownedUseCase xmi:type="uml:UseCase" xmi:id="_C9OZ4ITGEeugKObI8pgoGA" name="Manage apartments" subject="_TPRn4GS3EeqTxqp8Bmjtjg">
              <ownedUseCase xmi:type="uml:UseCase" xmi:id="_Io6xYITGEeugKObI8pgoGA" name="Modify an apartment" subject="_TPRn4GS3EeqTxqp8Bmjtjg">
                <generalization xmi:type="uml:Generalization" xmi:id="_Y38kwITGEeugKObI8pgoGA" general="_C9OZ4ITGEeugKObI8pgoGA"/>
              </ownedUseCase>
              <ownedUseCase xmi:type="uml:UseCase" xmi:id="_K5JuoITGEeugKObI8pgoGA" name="Create an apartment" subject="_TPRn4GS3EeqTxqp8Bmjtjg">
                <generalization xmi:type="uml:Generalization" xmi:id="_VTUAYITGEeugKObI8pgoGA" general="_C9OZ4ITGEeugKObI8pgoGA"/>
              </ownedUseCase>
            </ownedUseCase>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_MeDusJu2Eeuncr8gT3yhGw" name="" type="_rB2xcIS7EeuzdriENguzmA"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_NbCUUJu2Eeuncr8gT3yhGw" name="" type="_rB2xcIS7EeuzdriENguzmA"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_QgGn0Ju2Eeuncr8gT3yhGw" name="" type="_fIsF4GS3EeqTxqp8Bmjtjg"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_SkSGEJu2Eeuncr8gT3yhGw" name="" type="_czcs0GS3EeqTxqp8Bmjtjg"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_VJf00Ju2Eeuncr8gT3yhGw" name="" type="_czcs0GS3EeqTxqp8Bmjtjg"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_ViQTEJu2Eeuncr8gT3yhGw" name="" type="_czcs0GS3EeqTxqp8Bmjtjg"/>
            <nestedClassifier xmi:type="uml:Association" xmi:id="_do2vAITGEeugKObI8pgoGA" name="Manage apartments" visibility="public" memberEnd="_do5LQITGEeugKObI8pgoGA _do5yUITGEeugKObI8pgoGA">
              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_do39IITGEeugKObI8pgoGA" source="org.eclipse.papyrus">
                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_do4kMITGEeugKObI8pgoGA" key="nature" value="UML_Nature"/>
              </eAnnotations>
              <ownedEnd xmi:type="uml:Property" xmi:id="_do5LQITGEeugKObI8pgoGA" name="manager" type="_nMIOoINeEeuKr4GKR77Z1g" association="_do2vAITGEeugKObI8pgoGA"/>
              <ownedEnd xmi:type="uml:Property" xmi:id="_do5yUITGEeugKObI8pgoGA" name="manage apartments" type="_C9OZ4ITGEeugKObI8pgoGA" association="_do2vAITGEeugKObI8pgoGA"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Association" xmi:id="_TeQkQIS7EeuzdriENguzmA" name="generate statistics" memberEnd="_TeTAgIS7EeuzdriENguzmA _TeTAgYS7EeuzdriENguzmA">
              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TeRyYIS7EeuzdriENguzmA" source="org.eclipse.papyrus">
                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TeSZcIS7EeuzdriENguzmA" key="nature" value="UML_Nature"/>
              </eAnnotations>
              <ownedEnd xmi:type="uml:Property" xmi:id="_TeTAgIS7EeuzdriENguzmA" name="generate database statistics" type="_oYvPkIS6EeuzdriENguzmA" association="_TeQkQIS7EeuzdriENguzmA"/>
              <ownedEnd xmi:type="uml:Property" xmi:id="_TeTAgYS7EeuzdriENguzmA" name="tenant" type="_jkbIIINeEeuKr4GKR77Z1g" association="_TeQkQIS7EeuzdriENguzmA"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Usage" xmi:id="_Q9OikJieEeupk9giDf-csg" name="see apartments" client="_fIsF4GS3EeqTxqp8Bmjtjg" supplier="_czcs0GS3EeqTxqp8Bmjtjg"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Actor" xmi:id="_jkbIIINeEeuKr4GKR77Z1g" name="Tenant"/>
        <packagedElement xmi:type="uml:Actor" xmi:id="_nMIOoINeEeuKr4GKR77Z1g" name="Manager"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_p_uX0GrAEeqG6NsufvOKcA" name="JavaIteration">
        <packagedElement xmi:type="uml:Package" xmi:id="_uGGXUGrAEeqG6NsufvOKcA" name="Iteration1Java"/>
        <packagedElement xmi:type="uml:Package" xmi:id="_UkDHsIYPEeqzqeujllcwMQ" name="Iteration3Java">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_bm_iMIPvEeqm2vrDV_e-Xg" name="InterractionBetweenUsersAndApplication">
            <lifeline xmi:type="uml:Lifeline" xmi:id="_YSClUIP_Eeqm2vrDV_e-Xg" name="Tenant" coveredBy="_WU24MIQFEeqyTrq5oKlx7g _PzGbYIQFEeqyTrq5oKlx7g _Py2jwIQFEeqyTrq5oKlx7g _4mk98JmbEeq6ILxwStZo1A _88dZEJmbEeq6ILxwStZo1A _eNgjAJmcEeq6ILxwStZo1A _H5WkcJmcEeq6ILxwStZo1A _H5dSIJmcEeq6ILxwStZo1A _k6v3EJmcEeq6ILxwStZo1A _niXwQIQJEeqyTrq5oKlx7g _PzJesIQFEeqyTrq5oKlx7g"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_kOSU4IP_Eeqm2vrDV_e-Xg" name="Application" coveredBy="_WU4tYIQFEeqyTrq5oKlx7g _otCJYIQFEeqyTrq5oKlx7g _X-9WEJmcEeq6ILxwStZo1A _H5WkcJmcEeq6ILxwStZo1A _H5dSIJmcEeq6ILxwStZo1A _t26g0JmcEeq6ILxwStZo1A _2ACkEJmcEeq6ILxwStZo1A _2ACkEZmcEeq6ILxwStZo1A _ncl4YIQJEeqyTrq5oKlx7g _aa_AEIQFEeqyTrq5oKlx7g"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_W2rBQIQEEeqyTrq5oKlx7g" name="GUI AVF" coveredBy="_otDXgIQFEeqyTrq5oKlx7g _4mjv0JmbEeq6ILxwStZo1A _88dZEZmbEeq6ILxwStZo1A _X-8vAJmcEeq6ILxwStZo1A _eNf78JmcEeq6ILxwStZo1A _H5WkcJmcEeq6ILxwStZo1A _H5dSIJmcEeq6ILxwStZo1A _k6weIJmcEeq6ILxwStZo1A _t222cJmcEeq6ILxwStZo1A _0mArgJmbEeq6ILxwStZo1A _0mAEcJmbEeq6ILxwStZo1A"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_i8tzwIQJEeqyTrq5oKlx7g" name="GUI Results" coveredBy="_H5WkcJmcEeq6ILxwStZo1A _H5dSIJmcEeq6ILxwStZo1A _ncnGgIQJEeqyTrq5oKlx7g _niWiIIQJEeqyTrq5oKlx7g _nh_80IQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_WU24MIQFEeqyTrq5oKlx7g" name="Ask to the program to launch itself SendEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_WUtuQIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_PzGbYIQFEeqyTrq5oKlx7g" name="ActionExecutionSpecification7Start" covered="_YSClUIP_Eeqm2vrDV_e-Xg" execution="_Py2jwIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_Py2jwIQFEeqyTrq5oKlx7g" name="ActionExecutionSpecification Tenant" covered="_YSClUIP_Eeqm2vrDV_e-Xg" finish="_PzJesIQFEeqyTrq5oKlx7g" start="_PzGbYIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_WU4tYIQFEeqyTrq5oKlx7g" name="Ask to the program to launch itself ReceiveEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_WUtuQIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_aa_AEIQFEeqyTrq5oKlx7g" name="ActionExecutionSpecification Application " covered="_kOSU4IP_Eeqm2vrDV_e-Xg" finish="_ncl4YIQJEeqyTrq5oKlx7g" start="_WU4tYIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_otCJYIQFEeqyTrq5oKlx7g" name="Create GUI Research SendEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_os_tIIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_otDXgIQFEeqyTrq5oKlx7g" name="Create GUI Research ReceiveEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_os_tIIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_0mAEcJmbEeq6ILxwStZo1A" name="ActionExecutionSpecification22" covered="_W2rBQIQEEeqyTrq5oKlx7g" finish="_0mArgJmbEeq6ILxwStZo1A" start="_otDXgIQFEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_4mjv0JmbEeq6ILxwStZo1A" name="Message24SendEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_4mihsJmbEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_4mk98JmbEeq6ILxwStZo1A" name="Message24ReceiveEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_4mihsJmbEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_88dZEJmbEeq6ILxwStZo1A" name="Message27SendEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_88cyAJmbEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_88dZEZmbEeq6ILxwStZo1A" name="Message27ReceiveEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_88cyAJmbEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_X-8vAJmcEeq6ILxwStZo1A" name="Message31SendEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_X-8H8JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_X-9WEJmcEeq6ILxwStZo1A" name="Message31ReceiveEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_X-8H8JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_eNf78JmcEeq6ILxwStZo1A" name="Message34SendEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_eNfU4JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_eNgjAJmcEeq6ILxwStZo1A" name="Message34ReceiveEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_eNfU4JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:CombinedFragment" xmi:id="_H5WkcJmcEeq6ILxwStZo1A" name="Ask for preferences questions" covered="_YSClUIP_Eeqm2vrDV_e-Xg _W2rBQIQEEeqyTrq5oKlx7g _kOSU4IP_Eeqm2vrDV_e-Xg _i8tzwIQJEeqyTrq5oKlx7g" interactionOperator="loop">
              <operand xmi:type="uml:InteractionOperand" xmi:id="_H5dSIJmcEeq6ILxwStZo1A" name="InteractionOperand0" covered="_YSClUIP_Eeqm2vrDV_e-Xg _W2rBQIQEEeqyTrq5oKlx7g _kOSU4IP_Eeqm2vrDV_e-Xg _i8tzwIQJEeqyTrq5oKlx7g">
                <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_k6v3EJmcEeq6ILxwStZo1A" name="Message37SendEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_k6vQAJmcEeq6ILxwStZo1A"/>
                <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_k6weIJmcEeq6ILxwStZo1A" name="Message37ReceiveEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_k6vQAJmcEeq6ILxwStZo1A"/>
                <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_t222cJmcEeq6ILxwStZo1A" name="Message38SendEvent" covered="_W2rBQIQEEeqyTrq5oKlx7g" message="_t21BQJmcEeq6ILxwStZo1A"/>
                <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_t26g0JmcEeq6ILxwStZo1A" name="Message38ReceiveEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_t21BQJmcEeq6ILxwStZo1A"/>
                <guard xmi:type="uml:InteractionConstraint" xmi:id="_H5dSIZmcEeq6ILxwStZo1A" name="guard"/>
              </operand>
            </fragment>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_2ACkEJmcEeq6ILxwStZo1A" name="Message39SendEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_2ABV8JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_0mArgJmbEeq6ILxwStZo1A" name="ActionExecutionSpecification22Finish" covered="_W2rBQIQEEeqyTrq5oKlx7g" execution="_0mAEcJmbEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_2ACkEZmcEeq6ILxwStZo1A" name="Message39ReceiveEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_2ABV8JmcEeq6ILxwStZo1A"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ncl4YIQJEeqyTrq5oKlx7g" name="Create GUI Results SendEvent" covered="_kOSU4IP_Eeqm2vrDV_e-Xg" message="_nckDMIQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ncnGgIQJEeqyTrq5oKlx7g" name="Create GUI Results ReceiveEvent" covered="_i8tzwIQJEeqyTrq5oKlx7g" message="_nckDMIQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_nh_80IQJEeqyTrq5oKlx7g" name="ActionExecutionSpecification GUI Result" covered="_i8tzwIQJEeqyTrq5oKlx7g" finish="_niWiIIQJEeqyTrq5oKlx7g" start="_ncnGgIQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_niWiIIQJEeqyTrq5oKlx7g" name="Show apartments sorted according to their accuracy SendEvent" covered="_i8tzwIQJEeqyTrq5oKlx7g" message="_niUF4IQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_niXwQIQJEeqyTrq5oKlx7g" name="Show apartments sorted according to their accuracy ReceiveEvent" covered="_YSClUIP_Eeqm2vrDV_e-Xg" message="_niUF4IQJEeqyTrq5oKlx7g"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_PzJesIQFEeqyTrq5oKlx7g" name="ActionExecutionSpecification7Finish" covered="_YSClUIP_Eeqm2vrDV_e-Xg" execution="_Py2jwIQFEeqyTrq5oKlx7g"/>
            <message xmi:type="uml:Message" xmi:id="_WUtuQIQFEeqyTrq5oKlx7g" name="Ask to the program to launch itself" messageSort="createMessage" receiveEvent="_WU4tYIQFEeqyTrq5oKlx7g" sendEvent="_WU24MIQFEeqyTrq5oKlx7g"/>
            <message xmi:type="uml:Message" xmi:id="_os_tIIQFEeqyTrq5oKlx7g" name="Create GUI Research" messageSort="createMessage" receiveEvent="_otDXgIQFEeqyTrq5oKlx7g" sendEvent="_otCJYIQFEeqyTrq5oKlx7g"/>
            <message xmi:type="uml:Message" xmi:id="_nckDMIQJEeqyTrq5oKlx7g" name="Create GUI Results" messageSort="createMessage" receiveEvent="_ncnGgIQJEeqyTrq5oKlx7g" sendEvent="_ncl4YIQJEeqyTrq5oKlx7g"/>
            <message xmi:type="uml:Message" xmi:id="_niUF4IQJEeqyTrq5oKlx7g" name="Show apartments sorted according to their accuracy" receiveEvent="_niXwQIQJEeqyTrq5oKlx7g" sendEvent="_niWiIIQJEeqyTrq5oKlx7g"/>
            <message xmi:type="uml:Message" xmi:id="_4mihsJmbEeq6ILxwStZo1A" name="show the different profiles" messageSort="asynchCall" receiveEvent="_4mk98JmbEeq6ILxwStZo1A" sendEvent="_4mjv0JmbEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_88cyAJmbEeq6ILxwStZo1A" name="Select a profile" messageSort="asynchCall" receiveEvent="_88dZEZmbEeq6ILxwStZo1A" sendEvent="_88dZEJmbEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_X-8H8JmcEeq6ILxwStZo1A" name="Send values corresponding to the selected profile" messageSort="asynchCall" receiveEvent="_X-9WEJmcEeq6ILxwStZo1A" sendEvent="_X-8vAJmcEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_eNfU4JmcEeq6ILxwStZo1A" name="Ask question to get preference" messageSort="asynchCall" receiveEvent="_eNgjAJmcEeq6ILxwStZo1A" sendEvent="_eNf78JmcEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_k6vQAJmcEeq6ILxwStZo1A" name="reply to this question" messageSort="asynchCall" receiveEvent="_k6weIJmcEeq6ILxwStZo1A" sendEvent="_k6v3EJmcEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_t21BQJmcEeq6ILxwStZo1A" name="send response to value function" messageSort="asynchCall" receiveEvent="_t26g0JmcEeq6ILxwStZo1A" sendEvent="_t222cJmcEeq6ILxwStZo1A"/>
            <message xmi:type="uml:Message" xmi:id="_2ABV8JmcEeq6ILxwStZo1A" name="Compute results" receiveEvent="_2ACkEZmcEeq6ILxwStZo1A" sendEvent="_2ACkEJmcEeq6ILxwStZo1A"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_rfnPQJwuEeqGkeU796yVmw" memberEnd="_rfqSkpwuEeqGkeU796yVmw _rfq5oZwuEeqGkeU796yVmw">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rfqSkJwuEeqGkeU796yVmw" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rfqSkZwuEeqGkeU796yVmw" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_rfq5oZwuEeqGkeU796yVmw" name="profilemanager" type="_mJBTIIY3Eeqw9PFqD2CRLA" association="_rfnPQJwuEeqGkeU796yVmw">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ojs7wJw9EeqGkeU796yVmw" value="*"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_sy-UkJwuEeqGkeU796yVmw" memberEnd="_sy-7opwuEeqGkeU796yVmw _sy_isZwuEeqGkeU796yVmw">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sy-7oJwuEeqGkeU796yVmw" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sy-7oZwuEeqGkeU796yVmw" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_sy_isZwuEeqGkeU796yVmw" name="profile" type="_sCMNUJwtEeqGkeU796yVmw" association="_sy-UkJwuEeqGkeU796yVmw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KV8x8J06EeqrpIrBsKzVRw"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KWF74J06EeqrpIrBsKzVRw" value="*"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_MX2OIJy_Eeqv_texJXdVtQ" memberEnd="_MYDCcJy_Eeqv_texJXdVtQ _MYDpgZy_Eeqv_texJXdVtQ">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MX3cQJy_Eeqv_texJXdVtQ" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MX3cQZy_Eeqv_texJXdVtQ" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_MYDpgZy_Eeqv_texJXdVtQ" name="question" type="_LbxAkJpzEeqmHpvW7B5p3g" association="_MX2OIJy_Eeqv_texJXdVtQ"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_xllbwJ2eEeq5UMfZ1C8e7g" memberEnd="_xlq7UJ2eEeq5UMfZ1C8e7g _xlriYp2eEeq5UMfZ1C8e7g">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xlptMJ2eEeq5UMfZ1C8e7g" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xlptMZ2eEeq5UMfZ1C8e7g" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_xlriYp2eEeq5UMfZ1C8e7g" name="profile" type="_sCMNUJwtEeqGkeU796yVmw" association="_xllbwJ2eEeq5UMfZ1C8e7g">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0DWesJ2eEeq5UMfZ1C8e7g"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0Dhd0J2eEeq5UMfZ1C8e7g" value="*"/>
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_kG1I8JpvEeqmHpvW7B5p3g" name="Iteration4Java">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_ed23EJxYEeqGkeU796yVmw" name="TEMP Generate AVF using Profile">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_tLbCQJxZEeqGkeU796yVmw" name=""/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_wZzCwJxZEeqGkeU796yVmw" name="" type="_VP_vAF_AEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_yfQTYJxZEeqGkeU796yVmw" name="" type="_mJBTIIY3Eeqw9PFqD2CRLA"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_LiElsJxcEeqGkeU796yVmw" name="" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_G5-8EJxjEeqmC6F9zzM1kA" name="" type="_sCMNUJwtEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_uD1P8JxkEeqN5fyIU2DSYQ" name="" type="_ed23EJxYEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_uEFuoZxkEeqN5fyIU2DSYQ" name="" type="_ed23EJxYEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_HZtt8JzEEeqv_texJXdVtQ" name="" type="_ed23EJxYEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_HZu8EZzEEeqv_texJXdVtQ" name="" type="_ed23EJxYEeqGkeU796yVmw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_tLabMJxZEeqGkeU796yVmw" name="LT Tenant" represents="_tLbCQJxZEeqGkeU796yVmw" coveredBy="_67r3sZxaEeqGkeU796yVmw _Ok56AJxbEeqGkeU796yVmw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_wZybsJxZEeqGkeU796yVmw" name="LT AskOpinionForUtility" represents="_wZzCwJxZEeqGkeU796yVmw" coveredBy="_cOE64JxaEeqGkeU796yVmw _e6VFwJxaEeqGkeU796yVmw _67r3sJxaEeqGkeU796yVmw _MdXT0JxdEeqGkeU796yVmw _X7QhMJxiEeqmC6F9zzM1kA _WkomIJxaEeqGkeU796yVmw _WknYAJxaEeqGkeU796yVmw _Ok56AZxbEeqGkeU796yVmw _o0wAIJxdEeqGkeU796yVmw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_yfPsUJxZEeqGkeU796yVmw" name="LT Profile Manager" represents="_yfQTYJxZEeqGkeU796yVmw" coveredBy="_cOFh8JxaEeqGkeU796yVmw _e6UesJxaEeqGkeU796yVmw _MdX64JxdEeqGkeU796yVmw _mKjyIJxaEeqGkeU796yVmw _mKjyIZxaEeqGkeU796yVmw _o0vZEJxdEeqGkeU796yVmw _7cmhgJxcEeqGkeU796yVmw _7clTYJxcEeqGkeU796yVmw _adixYJxaEeqGkeU796yVmw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_UZrGQJxhEeqGkeU796yVmw" name=": ApartmentValueFunction" coveredBy="_X7RIQJxiEeqmC6F9zzM1kA _k-3xwJzAEeqv_texJXdVtQ _nYKu8JzBEeqv_texJXdVtQ _nYKu8ZzBEeqv_texJXdVtQ _pAFvAZzBEeqv_texJXdVtQ _6BCHgZzBEeqv_texJXdVtQ __TanIJzBEeqv_texJXdVtQ __TanIZzBEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_G59t8JxjEeqmC6F9zzM1kA" name="" represents="_G5-8EJxjEeqmC6F9zzM1kA" coveredBy="_k-3xwZzAEeqv_texJXdVtQ _n67dwJzBEeqv_texJXdVtQ _n696AZzBEeqv_texJXdVtQ _pAFvApzBEeqv_texJXdVtQ _6BCHgJzBEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_uD0o4JxkEeqN5fyIU2DSYQ" name="" represents="_uD1P8JxkEeqN5fyIU2DSYQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_uEFuoJxkEeqN5fyIU2DSYQ" name="" represents="_uEFuoZxkEeqN5fyIU2DSYQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_HZtG4JzEEeqv_texJXdVtQ" name="" represents="_HZtt8JzEEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_HZu8EJzEEeqv_texJXdVtQ" name="" represents="_HZu8EZzEEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_cOE64JxaEeqGkeU796yVmw" name="Message18SendEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_cODswJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_cOFh8JxaEeqGkeU796yVmw" name="Message18ReceiveEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_cODswJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_adixYJxaEeqGkeU796yVmw" name="ActionExecutionSpecification15" covered="_yfPsUJxZEeqGkeU796yVmw" finish="_e6UesJxaEeqGkeU796yVmw" start="_cOFh8JxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_e6UesJxaEeqGkeU796yVmw" name="Message20SendEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_e6RbYJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_e6VFwJxaEeqGkeU796yVmw" name="Message20ReceiveEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_e6RbYJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_67r3sJxaEeqGkeU796yVmw" name="Message25SendEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_67qpkJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_67r3sZxaEeqGkeU796yVmw" name="Message25ReceiveEvent" covered="_tLabMJxZEeqGkeU796yVmw" message="_67qpkJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_Ok56AJxbEeqGkeU796yVmw" name="Message28SendEvent" covered="_tLabMJxZEeqGkeU796yVmw" message="_Ok4r4JxbEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_MdXT0JxdEeqGkeU796yVmw" name="Message38SendEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_94QroJxcEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_MdX64JxdEeqGkeU796yVmw" name="Message38ReceiveEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_94QroJxcEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_X7QhMJxiEeqmC6F9zzM1kA" name="Message43SendEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_X7ET8JxiEeqmC6F9zzM1kA"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_WkomIJxaEeqGkeU796yVmw" name="ActionExecutionSpecification10Finish" covered="_wZybsJxZEeqGkeU796yVmw" execution="_WknYAJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_mKjyIJxaEeqGkeU796yVmw" name="Message22SendEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_mKikAJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_mKjyIZxaEeqGkeU796yVmw" name="Message22ReceiveEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_mKikAJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_Ok56AZxbEeqGkeU796yVmw" name="Message28ReceiveEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_Ok4r4JxbEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_o0vZEJxdEeqGkeU796yVmw" name="Message39SendEvent" covered="_yfPsUJxZEeqGkeU796yVmw" message="_o0uK8JxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_o0wAIJxdEeqGkeU796yVmw" name="Message39ReceiveEvent" covered="_wZybsJxZEeqGkeU796yVmw" message="_o0uK8JxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_7cmhgJxcEeqGkeU796yVmw" name="ActionExecutionSpecification35Finish" covered="_yfPsUJxZEeqGkeU796yVmw" execution="_7clTYJxcEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_WknYAJxaEeqGkeU796yVmw" name="ActionExecutionSpecification10" covered="_wZybsJxZEeqGkeU796yVmw" finish="_WkomIJxaEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_vg2EsJxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_vg2rwJxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_vg0PgJxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_7clTYJxcEeqGkeU796yVmw" name="ActionExecutionSpecification35" covered="_yfPsUJxZEeqGkeU796yVmw" finish="_MdX64JxdEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_5Z040JxZEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_5Z1f4JxZEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_5ZzqsJxZEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_X7RIQJxiEeqmC6F9zzM1kA" name="Message43ReceiveEvent" covered="_UZrGQJxhEeqGkeU796yVmw" message="_X7ET8JxiEeqmC6F9zzM1kA"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_k-3xwJzAEeqv_texJXdVtQ" name="Message57SendEvent" covered="_UZrGQJxhEeqGkeU796yVmw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_k-3xwZzAEeqv_texJXdVtQ" name="Message57ReceiveEvent" covered="_G59t8JxjEeqmC6F9zzM1kA"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_nYKu8JzBEeqv_texJXdVtQ" name="ActionExecutionSpecification53" covered="_UZrGQJxhEeqGkeU796yVmw" finish="__TanIZzBEeqv_texJXdVtQ" start="_nYKu8ZzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_nYKu8ZzBEeqv_texJXdVtQ" name="ActionExecutionSpecification53Start" covered="_UZrGQJxhEeqGkeU796yVmw" execution="_nYKu8JzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_n67dwJzBEeqv_texJXdVtQ" name="ActionExecutionSpecification56" covered="_G59t8JxjEeqmC6F9zzM1kA" finish="_n696AZzBEeqv_texJXdVtQ" start="_pAFvAZzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_n696AZzBEeqv_texJXdVtQ" name="ActionExecutionSpecification56Finish" covered="_G59t8JxjEeqmC6F9zzM1kA" execution="_n67dwJzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_pAFvAZzBEeqv_texJXdVtQ" name="Message59SendEvent" covered="_UZrGQJxhEeqGkeU796yVmw" message="_pAFvAJzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_pAFvApzBEeqv_texJXdVtQ" name="Message59ReceiveEvent" covered="_G59t8JxjEeqmC6F9zzM1kA" message="_pAFvAJzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_6BCHgJzBEeqv_texJXdVtQ" name="Message61SendEvent" covered="_G59t8JxjEeqmC6F9zzM1kA" message="_x4QpkJzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_6BCHgZzBEeqv_texJXdVtQ" name="Message61ReceiveEvent" covered="_UZrGQJxhEeqGkeU796yVmw" message="_x4QpkJzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__TanIJzBEeqv_texJXdVtQ" name="Message64SendEvent" covered="_UZrGQJxhEeqGkeU796yVmw" message="__TYK4JzBEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__TanIZzBEeqv_texJXdVtQ" name="Message64ReceiveEvent" covered="_UZrGQJxhEeqGkeU796yVmw" message="__TYK4JzBEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_XwQEsJxaEeqGkeU796yVmw" name="Launch Program"/>
            <message xmi:type="uml:Message" xmi:id="_cODswJxaEeqGkeU796yVmw" name="getProfileTypes" receiveEvent="_cOFh8JxaEeqGkeU796yVmw" sendEvent="_cOE64JxaEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_e6RbYJxaEeqGkeU796yVmw" name="giveAllExistingProfileTypes" messageSort="reply" receiveEvent="_e6VFwJxaEeqGkeU796yVmw" sendEvent="_e6UesJxaEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_mKikAJxaEeqGkeU796yVmw" name="get or generate profiles" receiveEvent="_mKjyIZxaEeqGkeU796yVmw" sendEvent="_mKjyIJxaEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_67qpkJxaEeqGkeU796yVmw" name="display all profiles" receiveEvent="_67r3sZxaEeqGkeU796yVmw" sendEvent="_67r3sJxaEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_Ok4r4JxbEeqGkeU796yVmw" name="select a profile" receiveEvent="_Ok56AZxbEeqGkeU796yVmw" sendEvent="_Ok56AJxbEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_94QroJxcEeqGkeU796yVmw" name="getProfile(ProfileType selectType)" receiveEvent="_MdX64JxdEeqGkeU796yVmw" sendEvent="_MdXT0JxdEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_o0uK8JxdEeqGkeU796yVmw" name="return profile instance of selected type" messageSort="reply" receiveEvent="_o0wAIJxdEeqGkeU796yVmw" sendEvent="_o0vZEJxdEeqGkeU796yVmw"/>
            <message xmi:type="uml:Message" xmi:id="_X7ET8JxiEeqmC6F9zzM1kA" name="new ApartmentValueFunction(Profile selected)" messageSort="createMessage" receiveEvent="_X7RIQJxiEeqmC6F9zzM1kA" sendEvent="_X7QhMJxiEeqmC6F9zzM1kA"/>
            <message xmi:type="uml:Message" xmi:id="_pAFvAJzBEeqv_texJXdVtQ" name="getValues" receiveEvent="_pAFvApzBEeqv_texJXdVtQ" sendEvent="_pAFvAZzBEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_x4QpkJzBEeqv_texJXdVtQ" name="return values" messageSort="reply" receiveEvent="_6BCHgZzBEeqv_texJXdVtQ" sendEvent="_6BCHgJzBEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="__TYK4JzBEeqv_texJXdVtQ" name="generate valueFunctions from values" receiveEvent="__TanIZzBEeqv_texJXdVtQ" sendEvent="__TanIJzBEeqv_texJXdVtQ"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interaction" xmi:id="_ZN2TYJzDEeqv_texJXdVtQ" name="Adapt AVF using Profile">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_dy06cZzDEeqv_texJXdVtQ" name=""/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_gCfP8JzDEeqv_texJXdVtQ" name="" type="_VP_vAF_AEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_i3NaUJzDEeqv_texJXdVtQ" name="" type="_sCMNUJwtEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_j-fygJzDEeqv_texJXdVtQ" name="" type="_LbxAkJpzEeqmHpvW7B5p3g"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_mEbkQJzDEeqv_texJXdVtQ" name="" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_V9h-4JzTEeqv_texJXdVtQ" name="" type="_VLMukF_AEeqAAb4u4HLI7w"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_dy06cJzDEeqv_texJXdVtQ" name="" represents="_dy06cZzDEeqv_texJXdVtQ" coveredBy="_o3AZkJzDEeqv_texJXdVtQ _o2_ygJzDEeqv_texJXdVtQ _bzEEUJzSEeqv_texJXdVtQ _kuwM8JzSEeqv_texJXdVtQ _efVn4ZzTEeqv_texJXdVtQ _o3BAoJzDEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_gCeo4JzDEeqv_texJXdVtQ" name="" represents="_gCfP8JzDEeqv_texJXdVtQ" coveredBy="___4kMJzEEeqv_texJXdVtQ ___39IJzEEeqv_texJXdVtQ _EBjC0JzFEeqv_texJXdVtQ _JNbR0ZzFEeqv_texJXdVtQ _bzC2MJzSEeqv_texJXdVtQ _kuwM8ZzSEeqv_texJXdVtQ _qy6HwJzSEeqv_texJXdVtQ _25OZUJzSEeqv_texJXdVtQ _axcZ0JzTEeqv_texJXdVtQ ___5LQJzEEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_i3MMMJzDEeqv_texJXdVtQ" name="" represents="_i3NaUJzDEeqv_texJXdVtQ" coveredBy="_EBjp4JzFEeqv_texJXdVtQ _JNbR0JzFEeqv_texJXdVtQ _C5hDwJzFEeqv_texJXdVtQ _C5f1oJzFEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_j-fLcJzDEeqv_texJXdVtQ" name="" represents="_j-fygJzDEeqv_texJXdVtQ" coveredBy="_n2O7QJzSEeqv_texJXdVtQ _n2OUMJzSEeqv_texJXdVtQ _qy6HwZzSEeqv_texJXdVtQ _yOGuAJzSEeqv_texJXdVtQ _25NyQJzSEeqv_texJXdVtQ _n2PiUJzSEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_mEa9MJzDEeqv_texJXdVtQ" name="" represents="_mEbkQJzDEeqv_texJXdVtQ" coveredBy="_xWKZYJzSEeqv_texJXdVtQ _xWJyUJzSEeqv_texJXdVtQ _yOHVEJzSEeqv_texJXdVtQ _xWLAcJzSEeqv_texJXdVtQ"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_V9gwwJzTEeqv_texJXdVtQ" name="" represents="_V9h-4JzTEeqv_texJXdVtQ" coveredBy="_axdA4JzTEeqv_texJXdVtQ _efVn4JzTEeqv_texJXdVtQ _ZdeQgJzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_o3AZkJzDEeqv_texJXdVtQ" name="ActionExecutionSpecification11Start" covered="_dy06cJzDEeqv_texJXdVtQ" execution="_o2_ygJzDEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_o2_ygJzDEeqv_texJXdVtQ" name="ActionExecutionSpecification11" covered="_dy06cJzDEeqv_texJXdVtQ" finish="_o3BAoJzDEeqv_texJXdVtQ" start="_o3AZkJzDEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="___4kMJzEEeqv_texJXdVtQ" name="ActionExecutionSpecification14Start" covered="_gCeo4JzDEeqv_texJXdVtQ" execution="___39IJzEEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="___39IJzEEeqv_texJXdVtQ" name="ActionExecutionSpecification14" covered="_gCeo4JzDEeqv_texJXdVtQ" finish="___5LQJzEEeqv_texJXdVtQ" start="___4kMJzEEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_EBjC0JzFEeqv_texJXdVtQ" name="Message20SendEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_EBibwJzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_EBjp4JzFEeqv_texJXdVtQ" name="Message20ReceiveEvent" covered="_i3MMMJzDEeqv_texJXdVtQ" message="_EBibwJzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_C5f1oJzFEeqv_texJXdVtQ" name="ActionExecutionSpecification17" covered="_i3MMMJzDEeqv_texJXdVtQ" finish="_C5hDwJzFEeqv_texJXdVtQ" start="_EBjp4JzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_JNbR0JzFEeqv_texJXdVtQ" name="Message22SendEvent" covered="_i3MMMJzDEeqv_texJXdVtQ" message="_JNaqwJzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_JNbR0ZzFEeqv_texJXdVtQ" name="Message22ReceiveEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_JNaqwJzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_bzC2MJzSEeqv_texJXdVtQ" name="Message25SendEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_by0zwJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_bzEEUJzSEeqv_texJXdVtQ" name="Message25ReceiveEvent" covered="_dy06cJzDEeqv_texJXdVtQ" message="_by0zwJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_kuwM8JzSEeqv_texJXdVtQ" name="Message28SendEvent" covered="_dy06cJzDEeqv_texJXdVtQ" message="_kuvl4JzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_kuwM8ZzSEeqv_texJXdVtQ" name="Message28ReceiveEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_kuvl4JzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_n2O7QJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification31Start" covered="_j-fLcJzDEeqv_texJXdVtQ" execution="_n2OUMJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_n2OUMJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification31" covered="_j-fLcJzDEeqv_texJXdVtQ" finish="_n2PiUJzSEeqv_texJXdVtQ" start="_n2O7QJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_qy6HwJzSEeqv_texJXdVtQ" name="Message34SendEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_qy5gsJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_qy6HwZzSEeqv_texJXdVtQ" name="Message34ReceiveEvent" covered="_j-fLcJzDEeqv_texJXdVtQ" message="_qy5gsJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_yOGuAJzSEeqv_texJXdVtQ" name="Message40SendEvent" covered="_j-fLcJzDEeqv_texJXdVtQ" message="_yOGG8JzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_xWKZYJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification37Start" covered="_mEa9MJzDEeqv_texJXdVtQ" execution="_xWJyUJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_xWJyUJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification37" covered="_mEa9MJzDEeqv_texJXdVtQ" finish="_xWLAcJzSEeqv_texJXdVtQ" start="_xWKZYJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_yOHVEJzSEeqv_texJXdVtQ" name="Message40ReceiveEvent" covered="_mEa9MJzDEeqv_texJXdVtQ" message="_yOGG8JzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_25NyQJzSEeqv_texJXdVtQ" name="Message43SendEvent" covered="_j-fLcJzDEeqv_texJXdVtQ" message="_25NLMJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_25OZUJzSEeqv_texJXdVtQ" name="Message43ReceiveEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_25NLMJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_C5hDwJzFEeqv_texJXdVtQ" name="ActionExecutionSpecification17Finish" covered="_i3MMMJzDEeqv_texJXdVtQ" execution="_C5f1oJzFEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_n2PiUJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification31Finish" covered="_j-fLcJzDEeqv_texJXdVtQ" execution="_n2OUMJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_xWLAcJzSEeqv_texJXdVtQ" name="ActionExecutionSpecification37Finish" covered="_mEa9MJzDEeqv_texJXdVtQ" execution="_xWJyUJzSEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_axcZ0JzTEeqv_texJXdVtQ" name="Message51SendEvent" covered="_gCeo4JzDEeqv_texJXdVtQ" message="_axbywJzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_axdA4JzTEeqv_texJXdVtQ" name="Message51ReceiveEvent" covered="_V9gwwJzTEeqv_texJXdVtQ" message="_axbywJzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_ZdeQgJzTEeqv_texJXdVtQ" name="ActionExecutionSpecification48" covered="_V9gwwJzTEeqv_texJXdVtQ" finish="_efVn4JzTEeqv_texJXdVtQ" start="_axdA4JzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="___5LQJzEEeqv_texJXdVtQ" name="ActionExecutionSpecification14Finish" covered="_gCeo4JzDEeqv_texJXdVtQ" execution="___39IJzEEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_efVn4JzTEeqv_texJXdVtQ" name="Message53SendEvent" covered="_V9gwwJzTEeqv_texJXdVtQ" message="_efVA0JzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_efVn4ZzTEeqv_texJXdVtQ" name="Message53ReceiveEvent" covered="_dy06cJzDEeqv_texJXdVtQ" message="_efVA0JzTEeqv_texJXdVtQ"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_o3BAoJzDEeqv_texJXdVtQ" name="ActionExecutionSpecification11Finish" covered="_dy06cJzDEeqv_texJXdVtQ" execution="_o2_ygJzDEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_EBibwJzFEeqv_texJXdVtQ" name="getQuestions()" receiveEvent="_EBjp4JzFEeqv_texJXdVtQ" sendEvent="_EBjC0JzFEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_JNaqwJzFEeqv_texJXdVtQ" name=" " messageSort="reply" receiveEvent="_JNbR0ZzFEeqv_texJXdVtQ" sendEvent="_JNbR0JzFEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_by0zwJzSEeqv_texJXdVtQ" name="getAnswers" receiveEvent="_bzEEUJzSEeqv_texJXdVtQ" sendEvent="_bzC2MJzSEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_kuvl4JzSEeqv_texJXdVtQ" name="answers" messageSort="asynchCall" receiveEvent="_kuwM8ZzSEeqv_texJXdVtQ" sendEvent="_kuwM8JzSEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_qy5gsJzSEeqv_texJXdVtQ" name="resolve(reponse,AVF)" receiveEvent="_qy6HwZzSEeqv_texJXdVtQ" sendEvent="_qy6HwJzSEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_yOGG8JzSEeqv_texJXdVtQ" name="setWeightCRITERIA" receiveEvent="_yOHVEJzSEeqv_texJXdVtQ" sendEvent="_yOGuAJzSEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_25NLMJzSEeqv_texJXdVtQ" name="return updated AVF" messageSort="reply" receiveEvent="_25OZUJzSEeqv_texJXdVtQ" sendEvent="_25NyQJzSEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_axbywJzTEeqv_texJXdVtQ" name="display apartments (AVF)" receiveEvent="_axdA4JzTEeqv_texJXdVtQ" sendEvent="_axcZ0JzTEeqv_texJXdVtQ"/>
            <message xmi:type="uml:Message" xmi:id="_efVA0JzTEeqv_texJXdVtQ" name="display sorted apartments" receiveEvent="_efVn4ZzTEeqv_texJXdVtQ" sendEvent="_efVn4JzTEeqv_texJXdVtQ"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interaction" xmi:id="_B_XUYJzgEequha_I2gW97w" name="Generate AVF using Profile">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_Tu4DEJzgEequha_I2gW97w" name=""/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_YOqBEJzgEequha_I2gW97w" name="" type="_VP_vAF_AEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_fUFLoJzgEequha_I2gW97w" name="" type="_mJBTIIY3Eeqw9PFqD2CRLA"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_hUXBUJzgEequha_I2gW97w" name="" type="_sCMNUJwtEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_HlvcIJziEequha_I2gW97w" name="" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_58Dn0J04EeqrpIrBsKzVRw" name="" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_Tu3cAJzgEequha_I2gW97w" name="" represents="_Tu4DEJzgEequha_I2gW97w" coveredBy="_saUCEJzgEequha_I2gW97w _l7H7oJzhEequha_I2gW97w _p7D78JzhEequha_I2gW97w _kyTu4JzgEequha_I2gW97w"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_YOgQEJzgEequha_I2gW97w" name="" represents="_YOqBEJzgEequha_I2gW97w" coveredBy="_saXFYJzgEequha_I2gW97w _HkWKcJzhEequha_I2gW97w _ee2-YJzhEequha_I2gW97w _l7HUkJzhEequha_I2gW97w _p7EjAJzhEequha_I2gW97w _xZD-kZzhEequha_I2gW97w __JK4cJzhEequha_I2gW97w _AiF9IJ04EeqrpIrBsKzVRw _Aj7JIZ04EeqrpIrBsKzVRw _2w8esJzgEequha_I2gW97w _2w2YEJzgEequha_I2gW97w"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_fUEkkJzgEequha_I2gW97w" name="" represents="_fUFLoJzgEequha_I2gW97w" coveredBy="_HkWxgJzhEequha_I2gW97w _TqO-MJzhEequha_I2gW97w _TqQMUJzhEequha_I2gW97w _eez7EZzhEequha_I2gW97w _xZHo8JzhEequha_I2gW97w __JKRYJzhEequha_I2gW97w _uA8MMJzhEequha_I2gW97w _Ssb5MJzhEequha_I2gW97w"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_hUVzMJzgEequha_I2gW97w" name="" represents="_hUXBUJzgEequha_I2gW97w" coveredBy="_AiGkMJ04EeqrpIrBsKzVRw _gHj5kZ05EeqrpIrBsKzVRw _J8Eu0Z05EeqrpIrBsKzVRw _26pP0J05EeqrpIrBsKzVRw _AjuU0J04EeqrpIrBsKzVRw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_HLAA4JziEequha_I2gW97w" name=""/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_58DAwJ04EeqrpIrBsKzVRw" name="" represents="_58Dn0J04EeqrpIrBsKzVRw" coveredBy="_26pP0Z05EeqrpIrBsKzVRw _sDybAJ05EeqrpIrBsKzVRw _sDxz8J05EeqrpIrBsKzVRw _IWsFYJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_saUCEJzgEequha_I2gW97w" name="Message12SendEvent" covered="_Tu3cAJzgEequha_I2gW97w" message="_saTbAJzgEequha_I2gW97w"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_kyTu4JzgEequha_I2gW97w" name="ActionExecutionSpecification9" covered="_Tu3cAJzgEequha_I2gW97w" start="_saUCEJzgEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_saXFYJzgEequha_I2gW97w" name="Message12ReceiveEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_saTbAJzgEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_HkWKcJzhEequha_I2gW97w" name="Message20SendEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_HkU8UJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_2w2YEJzgEequha_I2gW97w" name="ActionExecutionSpecification14" covered="_YOgQEJzgEequha_I2gW97w" finish="_2w8esJzgEequha_I2gW97w" start="_HkWKcJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_HkWxgJzhEequha_I2gW97w" name="Message20ReceiveEvent" covered="_fUEkkJzgEequha_I2gW97w" message="_HkU8UJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_Ssb5MJzhEequha_I2gW97w" name="ActionExecutionSpecification19" covered="_fUEkkJzgEequha_I2gW97w" finish="_eez7EZzhEequha_I2gW97w" start="_HkWxgJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_TqO-MJzhEequha_I2gW97w" name="Message21SendEvent" covered="_fUEkkJzgEequha_I2gW97w" message="_TqNwEJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_TqQMUJzhEequha_I2gW97w" name="Message21ReceiveEvent" covered="_fUEkkJzgEequha_I2gW97w" message="_TqNwEJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_eez7EZzhEequha_I2gW97w" name="Message24SendEvent" covered="_fUEkkJzgEequha_I2gW97w" message="_eez7EJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ee2-YJzhEequha_I2gW97w" name="Message24ReceiveEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_eez7EJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_l7HUkJzhEequha_I2gW97w" name="Message26SendEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_l7CcEJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_l7H7oJzhEequha_I2gW97w" name="Message26ReceiveEvent" covered="_Tu3cAJzgEequha_I2gW97w" message="_l7CcEJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_p7D78JzhEequha_I2gW97w" name="Message29SendEvent" covered="_Tu3cAJzgEequha_I2gW97w" message="_p7DU4JzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_p7EjAJzhEequha_I2gW97w" name="Message29ReceiveEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_p7DU4JzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_xZD-kZzhEequha_I2gW97w" name="Message35SendEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_xZD-kJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_xZHo8JzhEequha_I2gW97w" name="Message35ReceiveEvent" covered="_fUEkkJzgEequha_I2gW97w" message="_xZD-kJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_uA8MMJzhEequha_I2gW97w" name="ActionExecutionSpecification32" covered="_fUEkkJzgEequha_I2gW97w" finish="__JKRYJzhEequha_I2gW97w" start="_xZHo8JzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__JKRYJzhEequha_I2gW97w" name="Message37SendEvent" covered="_fUEkkJzgEequha_I2gW97w" message="__JJqUJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__JK4cJzhEequha_I2gW97w" name="Message37ReceiveEvent" covered="_YOgQEJzgEequha_I2gW97w" message="__JJqUJzhEequha_I2gW97w"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_AiF9IJ04EeqrpIrBsKzVRw" name="Message42SendEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_Ah_PcJ04EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_AiGkMJ04EeqrpIrBsKzVRw" name="Message42ReceiveEvent" covered="_hUVzMJzgEequha_I2gW97w" message="_Ah_PcJ04EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_AjuU0J04EeqrpIrBsKzVRw" name="BehaviorExecutionSpecification45" covered="_hUVzMJzgEequha_I2gW97w" start="_AiGkMJ04EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_gHj5kZ05EeqrpIrBsKzVRw" name="Message55SendEvent" covered="_hUVzMJzgEequha_I2gW97w" message="_gHj5kJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_J8Eu0Z05EeqrpIrBsKzVRw" name="Message56SendEvent" covered="_hUVzMJzgEequha_I2gW97w" message="_J8Eu0J05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_26pP0J05EeqrpIrBsKzVRw" name="Message60SendEvent" covered="_hUVzMJzgEequha_I2gW97w" message="_26oowJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_26pP0Z05EeqrpIrBsKzVRw" name="Message60ReceiveEvent" covered="_58DAwJ04EeqrpIrBsKzVRw" message="_26oowJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_Aj7JIZ04EeqrpIrBsKzVRw" name="Message47ReceiveEvent" covered="_YOgQEJzgEequha_I2gW97w" message="_Aj57AJ04EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_sDybAJ05EeqrpIrBsKzVRw" name="ActionExecutionSpecification58Finish" covered="_58DAwJ04EeqrpIrBsKzVRw" execution="_sDxz8J05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_2w8esJzgEequha_I2gW97w" name="ActionExecutionSpecification14Finish" covered="_YOgQEJzgEequha_I2gW97w" execution="_2w2YEJzgEequha_I2gW97w"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_hFStIJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_IWsscJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_J8FV4J05EeqrpIrBsKzVRw" name="Message56ReceiveEvent" message="_J8Eu0J05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_A8Y3AJ05EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_IWsFYJ05EeqrpIrBsKzVRw" covered="_58DAwJ04EeqrpIrBsKzVRw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_sDxz8J05EeqrpIrBsKzVRw" name="ActionExecutionSpecification58" covered="_58DAwJ04EeqrpIrBsKzVRw" finish="_sDybAJ05EeqrpIrBsKzVRw"/>
            <message xmi:type="uml:Message" xmi:id="_saTbAJzgEequha_I2gW97w" name="Launch Program" messageSort="createMessage" receiveEvent="_saXFYJzgEequha_I2gW97w" sendEvent="_saUCEJzgEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_HkU8UJzhEequha_I2gW97w" name="getProfileTypes" receiveEvent="_HkWxgJzhEequha_I2gW97w" sendEvent="_HkWKcJzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_TqNwEJzhEequha_I2gW97w" name="get or generate profiles" receiveEvent="_TqQMUJzhEequha_I2gW97w" sendEvent="_TqO-MJzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_eez7EJzhEequha_I2gW97w" name=" " messageSort="reply" receiveEvent="_ee2-YJzhEequha_I2gW97w" sendEvent="_eez7EZzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_l7CcEJzhEequha_I2gW97w" name="selectProfileType()" receiveEvent="_l7H7oJzhEequha_I2gW97w" sendEvent="_l7HUkJzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_p7DU4JzhEequha_I2gW97w" name="select a profile" receiveEvent="_p7EjAJzhEequha_I2gW97w" sendEvent="_p7D78JzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_xZD-kJzhEequha_I2gW97w" name="getProfile(ProfileType selected)" receiveEvent="_xZHo8JzhEequha_I2gW97w" sendEvent="_xZD-kZzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="__JJqUJzhEequha_I2gW97w" name=" " messageSort="reply" receiveEvent="__JK4cJzhEequha_I2gW97w" sendEvent="__JKRYJzhEequha_I2gW97w"/>
            <message xmi:type="uml:Message" xmi:id="_Ah_PcJ04EeqrpIrBsKzVRw" name="getAVF( )" receiveEvent="_AiGkMJ04EeqrpIrBsKzVRw" sendEvent="_AiF9IJ04EeqrpIrBsKzVRw"/>
            <message xmi:type="uml:Message" xmi:id="_Aj57AJ04EeqrpIrBsKzVRw" name=" " messageSort="reply" receiveEvent="_Aj7JIZ04EeqrpIrBsKzVRw"/>
            <message xmi:type="uml:Message" xmi:id="_J8Eu0J05EeqrpIrBsKzVRw" name="Message56" receiveEvent="_J8FV4J05EeqrpIrBsKzVRw" sendEvent="_J8Eu0Z05EeqrpIrBsKzVRw"/>
            <message xmi:type="uml:Message" xmi:id="_gHj5kJ05EeqrpIrBsKzVRw" name="new AVF()" messageSort="createMessage" sendEvent="_gHj5kZ05EeqrpIrBsKzVRw"/>
            <message xmi:type="uml:Message" xmi:id="_26oowJ05EeqrpIrBsKzVRw" name="setValueFunction" receiveEvent="_26pP0Z05EeqrpIrBsKzVRw" sendEvent="_26pP0J05EeqrpIrBsKzVRw"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_-FOsoJU1Eeqfq4Pvb_wd9Q" name="CD_CurrentApplication">
        <ownedComment xmi:type="uml:Comment" xmi:id="_vU3A4LykEeuvu5ayhp9Lzg" annotatedElement="_klApcLyYEeuvu5ayhp9Lzg">
          <body>JFreeChart is a Java Application Programming Interface (API) for creating graphs and diagrams. In our case, we use it to create the SpiderPlot graph.</body>
        </ownedComment>
        <ownedComment xmi:type="uml:Comment" xmi:id="_js6O4Ly7Eeuvu5ayhp9Lzg" annotatedElement="_L5pcwLy1Eeuvu5ayhp9Lzg">
          <body>It is the interface used to manipulate a set of data with values ​​that are associated with categories. &#xD;
These categories are represented by instances of Comparable. &#xD;
In our case, the categories are represented by the addresses of the apartments being compared and the criterions.&#xD;
The CategoryDataset is required to be able to create a Spider Plot in the createChart method.</body>
        </ownedComment>
        <packagedElement xmi:type="uml:Package" xmi:id="_DFOKsGrDEeqG6NsufvOKcA" name="DC Global Detailed">
          <packagedElement xmi:type="uml:Association" xmi:id="_rrSy8GVIEeq0U8CyxWHVBA" name="&lt; a choisi" visibility="private" memberEnd="_rrjRoGVIEeq0U8CyxWHVBA _rrkfwGVIEeq0U8CyxWHVBA">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rrg1YGVIEeq0U8CyxWHVBA" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rrhccGVIEeq0U8CyxWHVBA" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_rrkfwGVIEeq0U8CyxWHVBA" type="_VP_vAF_AEeqAAb4u4HLI7w" association="_rrSy8GVIEeq0U8CyxWHVBA">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7qadcGXJEeqLXLaj_4v3Nw"/>
              <upperValue xmi:type="uml:LiteralString" xmi:id="_8noToGXJEeqLXLaj_4v3Nw" value="*"/>
            </ownedEnd>
            <ownedEnd xmi:type="uml:Property" xmi:id="_rrjRoGVIEeq0U8CyxWHVBA" type="__lgUEGVHEeq0U8CyxWHVBA" aggregation="composite" association="_rrSy8GVIEeq0U8CyxWHVBA">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rrj4sGVIEeq0U8CyxWHVBA"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rrj4sWVIEeq0U8CyxWHVBA" value="2"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_xRQV4GVIEeq0U8CyxWHVBA" name="&lt; a choisi" memberEnd="_xRQ88mVIEeq0U8CyxWHVBA _xRRkAmVIEeq0U8CyxWHVBA">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xRQ88GVIEeq0U8CyxWHVBA" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xRQ88WVIEeq0U8CyxWHVBA" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_xRRkAmVIEeq0U8CyxWHVBA" name="choix1" type="_VP_vAF_AEeqAAb4u4HLI7w" association="_xRQV4GVIEeq0U8CyxWHVBA">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Uu0ykGXJEeqLXLaj_4v3Nw"/>
              <upperValue xmi:type="uml:LiteralString" xmi:id="_bLR4oGXJEeqLXLaj_4v3Nw" value="*"/>
            </ownedEnd>
            <ownedEnd xmi:type="uml:Property" xmi:id="_xRQ88mVIEeq0U8CyxWHVBA" type="__lgUEGVHEeq0U8CyxWHVBA" aggregation="composite" association="_xRQV4GVIEeq0U8CyxWHVBA">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xRRkAGVIEeq0U8CyxWHVBA"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xRRkAWVIEeq0U8CyxWHVBA" value="2"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_fAj5YGXPEeqLXLaj_4v3Nw" name="↑ enregistre " visibility="protected" memberEnd="_fBLkcGXPEeqLXLaj_4v3Nw _fBNZoGXPEeqLXLaj_4v3Nw">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBIhIGXPEeqLXLaj_4v3Nw" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBJIMGXPEeqLXLaj_4v3Nw" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_fBNZoGXPEeqLXLaj_4v3Nw" name="apart" type="_VLMukF_AEeqAAb4u4HLI7w" association="_fAj5YGXPEeqLXLaj_4v3Nw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vM2ygIY0Eeqk76wXlGQtaA"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2qot4JU2Eeqfq4Pvb_wd9Q" value="*"/>
            </ownedEnd>
            <ownedEnd xmi:type="uml:Property" xmi:id="_fBLkcGXPEeqLXLaj_4v3Nw" type="_1N7WIF--EeqAAb4u4HLI7w" aggregation="composite" association="_fAj5YGXPEeqLXLaj_4v3Nw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yi8fwJU2Eeqfq4Pvb_wd9Q"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="_odBscGXSEeqLXLaj_4v3Nw" memberEnd="_odEvwmXSEeqLXLaj_4v3Nw _odFW0mXSEeqLXLaj_4v3Nw">
            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_odEvwGXSEeqLXLaj_4v3Nw" source="org.eclipse.papyrus">
              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_odEvwWXSEeqLXLaj_4v3Nw" key="nature" value="UML_Nature"/>
            </eAnnotations>
            <ownedEnd xmi:type="uml:Property" xmi:id="_odFW0mXSEeqLXLaj_4v3Nw" type="_VKBp4F_AEeqAAb4u4HLI7w" association="_odBscGXSEeqLXLaj_4v3Nw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2XFzkGXSEeqLXLaj_4v3Nw"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_46c0YJU2Eeqfq4Pvb_wd9Q" value="*"/>
            </ownedEnd>
            <ownedEnd xmi:type="uml:Property" xmi:id="_odEvwmXSEeqLXLaj_4v3Nw" type="_1N7WIF--EeqAAb4u4HLI7w" aggregation="composite" association="_odBscGXSEeqLXLaj_4v3Nw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1X_HAGXSEeqLXLaj_4v3Nw"/>
            </ownedEnd>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_YlZU0ITJEeuO67RRHEv8_Q" name="Interaction Diagrams">
        <packagedElement xmi:type="uml:Package" xmi:id="_gWD0wITJEeuO67RRHEv8_Q" name="ID_valuefonction" visibility="public">
          <packagedElement xmi:type="uml:Interaction" xmi:id="_CL3RkITKEeuO67RRHEv8_Q" name="InteractionRecomputeValueFonction">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_SC0EAKW3EeuDvJpHXMpY9A" name="" type="_CL3RkITKEeuO67RRHEv8_Q"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_Sn_FwITKEeuO67RRHEv8_Q" name="Tenant" coveredBy="_8OmZUKpiEeuagelpr5BMwA _8JAHoKpiEeuagelpr5BMwA _i1RgAKwXEeuurZpZ_MDBKw _VXyKsKwYEeuurZpZ_MDBKw _HlK58KwZEeuurZpZ_MDBKw _B-uZYKwaEeuurZpZ_MDBKw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_-j_WgITKEeuO67RRHEv8_Q" name="AskOpinionForUtility" represents="_rrkfwGVIEeq0U8CyxWHVBA" coveredBy="_APZbsKwYEeuurZpZ_MDBKw _CShxEKwYEeuurZpZ_MDBKw _dhljYKwYEeuurZpZ_MDBKw _dhjuMKwYEeuurZpZ_MDBKw _g5fTUKwYEeuurZpZ_MDBKw _s3ldAKwYEeuurZpZ_MDBKw _5d3dgKwXEeuurZpZ_MDBKw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_w2GYIJncEeuPnOtGFVlcCw" name="LayoutApartmentGUI" represents="_odFW0mXSEeqLXLaj_4v3Nw" coveredBy="_YGhMYKwZEeuurZpZ_MDBKw _YGf-QKwZEeuurZpZ_MDBKw _Z1TCYKwZEeuurZpZ_MDBKw _dfk7wKwZEeuurZpZ_MDBKw _o9CdkKwZEeuurZpZ_MDBKw _YGhzcKwZEeuurZpZ_MDBKw"/>
            <lifeline xmi:type="uml:Lifeline" xmi:id="_V87jcKWnEeuDvJpHXMpY9A" name="Orchestrator" represents="_kOLJkKWpEeuDvJpHXMpY9A" coveredBy="_fCw3sKwXEeuurZpZ_MDBKw _fCvpkKwXEeuurZpZ_MDBKw _i1SHEKwXEeuurZpZ_MDBKw _APY0oKwYEeuurZpZ_MDBKw _CSiYIKwYEeuurZpZ_MDBKw _fCw3sawXEeuurZpZ_MDBKw _VXyxwKwYEeuurZpZ_MDBKw _g5esQKwYEeuurZpZ_MDBKw _s3mEEKwYEeuurZpZ_MDBKw _SBK0MKwYEeuurZpZ_MDBKw _K9FtcKwYEeuurZpZ_MDBKw _HlLhAKwZEeuurZpZ_MDBKw _Z1SbUKwZEeuurZpZ_MDBKw _L0G_kKwZEeuurZpZ_MDBKw _L0FKYKwZEeuurZpZ_MDBKw _dfkUsKwZEeuurZpZ_MDBKw _o9DEoKwZEeuurZpZ_MDBKw _OwR1wKwZEeuurZpZ_MDBKw _OwQnoKwZEeuurZpZ_MDBKw _x6kOsKwYEeuurZpZ_MDBKw _x6jAkKwYEeuurZpZ_MDBKw _B-vAcKwaEeuurZpZ_MDBKw _yc8GgKwZEeuurZpZ_MDBKw _yc6RUKwZEeuurZpZ_MDBKw _K9G7kKwYEeuurZpZ_MDBKw _KArIgKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_8OmZUKpiEeuagelpr5BMwA" name="ActionExecutionSpecification71Start" covered="_Sn_FwITKEeuO67RRHEv8_Q" execution="_8JAHoKpiEeuagelpr5BMwA"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_8JAHoKpiEeuagelpr5BMwA" name="ActionExecutionSpecification71" covered="_Sn_FwITKEeuO67RRHEv8_Q" start="_8OmZUKpiEeuagelpr5BMwA"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_fCw3sKwXEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification9Start" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_fCvpkKwXEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_fCvpkKwXEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification9" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_fCw3sawXEeuurZpZ_MDBKw" start="_fCw3sKwXEeuurZpZ_MDBKw" behavior="_OgF3gKehEeuzh8aae7HGjg"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_i1RgAKwXEeuurZpZ_MDBKw" name="Message12SendEvent" covered="_Sn_FwITKEeuO67RRHEv8_Q" message="_i1Q48KwXEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_i1SHEKwXEeuurZpZ_MDBKw" name="Message12ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_i1Q48KwXEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_APY0oKwYEeuurZpZ_MDBKw" name="Message21SendEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_APYNkKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_1b1LcKwXEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification15" finish="_CSiYIKwYEeuurZpZ_MDBKw" start="_APY0oKwYEeuurZpZ_MDBKw" behavior="_EKRpUKeYEeuzh8aae7HGjg"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_APZbsKwYEeuurZpZ_MDBKw" name="Message21ReceiveEvent" covered="_-j_WgITKEeuO67RRHEv8_Q" message="_APYNkKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_5d3dgKwXEeuurZpZ_MDBKw" name="ActionExecutionSpecification18" covered="_-j_WgITKEeuO67RRHEv8_Q" finish="_CShxEKwYEeuurZpZ_MDBKw" start="_APZbsKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_CShxEKwYEeuurZpZ_MDBKw" name="Message22SendEvent" covered="_-j_WgITKEeuO67RRHEv8_Q" message="_CShKAKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_CSiYIKwYEeuurZpZ_MDBKw" name="Message22ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_CShKAKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_fCw3sawXEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification9Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_fCvpkKwXEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_VXyKsKwYEeuurZpZ_MDBKw" name="Message26SendEvent" covered="_Sn_FwITKEeuO67RRHEv8_Q" message="_VXxjoKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_VXyxwKwYEeuurZpZ_MDBKw" name="Message26ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_VXxjoKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_dhljYKwYEeuurZpZ_MDBKw" name="ActionExecutionSpecification29Start" covered="_-j_WgITKEeuO67RRHEv8_Q" execution="_dhjuMKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_dhjuMKwYEeuurZpZ_MDBKw" name="ActionExecutionSpecification29" covered="_-j_WgITKEeuO67RRHEv8_Q" finish="_s3ldAKwYEeuurZpZ_MDBKw" start="_dhljYKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_g5esQKwYEeuurZpZ_MDBKw" name="Message32SendEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_g5deIKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_g5fTUKwYEeuurZpZ_MDBKw" name="Message32ReceiveEvent" covered="_-j_WgITKEeuO67RRHEv8_Q" message="_g5deIKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_s3ldAKwYEeuurZpZ_MDBKw" name="Message35SendEvent" covered="_-j_WgITKEeuO67RRHEv8_Q" message="_s3k18KwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_s3mEEKwYEeuurZpZ_MDBKw" name="Message35ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_s3k18KwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_SBK0MKwYEeuurZpZ_MDBKw" name="ActionExecutionSpecification23Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_K9FtcKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_HlK58KwZEeuurZpZ_MDBKw" name="Message40SendEvent" covered="_Sn_FwITKEeuO67RRHEv8_Q" message="_HlKS4KwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_HlLhAKwZEeuurZpZ_MDBKw" name="Message40ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_HlKS4KwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_x6jAkKwYEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification37" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_x6kOsKwYEeuurZpZ_MDBKw" start="_HlLhAKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_YGhMYKwZEeuurZpZ_MDBKw" name="ActionExecutionSpecification48Start" covered="_w2GYIJncEeuPnOtGFVlcCw" execution="_YGf-QKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_YGf-QKwZEeuurZpZ_MDBKw" name="ActionExecutionSpecification48" covered="_w2GYIJncEeuPnOtGFVlcCw" start="_YGhMYKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_Z1SbUKwZEeuurZpZ_MDBKw" name="Message51SendEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_Z1R0QKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_L0FKYKwZEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification42" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_L0G_kKwZEeuurZpZ_MDBKw" start="_Z1SbUKwZEeuurZpZ_MDBKw" behavior="_36624KefEeuzh8aae7HGjg"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_Z1TCYKwZEeuurZpZ_MDBKw" name="Message51ReceiveEvent" covered="_w2GYIJncEeuPnOtGFVlcCw" message="_Z1R0QKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_L0G_kKwZEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification42Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_L0FKYKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_dfkUsKwZEeuurZpZ_MDBKw" name="Message53SendEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_dfjtoKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_OwQnoKwZEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification45" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_OwR1wKwZEeuurZpZ_MDBKw" start="_dfkUsKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_dfk7wKwZEeuurZpZ_MDBKw" name="Message53ReceiveEvent" covered="_w2GYIJncEeuPnOtGFVlcCw" message="_dfjtoKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_o9CdkKwZEeuurZpZ_MDBKw" name="Message55SendEvent" covered="_w2GYIJncEeuPnOtGFVlcCw" message="_o9B2gKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_o9DEoKwZEeuurZpZ_MDBKw" name="Message55ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_o9B2gKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_OwR1wKwZEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification45Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_OwQnoKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_x6kOsKwYEeuurZpZ_MDBKw" name="BehaviorExecutionSpecification37Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_x6jAkKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_B-vAcKwaEeuurZpZ_MDBKw" name="Message62ReceiveEvent" covered="_V87jcKWnEeuDvJpHXMpY9A" message="_B-tyUKwaEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_yc8GgKwZEeuurZpZ_MDBKw" name="ActionExecutionSpecification58Finish" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_yc6RUKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_K9G7kKwYEeuurZpZ_MDBKw" name="ActionExecutionSpecification23Start" covered="_V87jcKWnEeuDvJpHXMpY9A" execution="_K9FtcKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_YGhzcKwZEeuurZpZ_MDBKw" name="ActionExecutionSpecification48Finish" covered="_w2GYIJncEeuPnOtGFVlcCw" execution="_YGf-QKwZEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_K9FtcKwYEeuurZpZ_MDBKw" name="ActionExecutionSpecification23" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_SBK0MKwYEeuurZpZ_MDBKw"/>
            <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_KArIgKwYEeuurZpZ_MDBKw" covered="_V87jcKWnEeuDvJpHXMpY9A"/>
            <fragment xmi:type="uml:CombinedFragment" xmi:id="_2DO3wKwZEeuurZpZ_MDBKw" name="CombinedFragment61" interactionOperator="opt">
              <operand xmi:type="uml:InteractionOperand" xmi:id="_2DogYKwZEeuurZpZ_MDBKw" name="InteractionOperand0">
                <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_B-uZYKwaEeuurZpZ_MDBKw" name="Message62SendEvent" covered="_Sn_FwITKEeuO67RRHEv8_Q" message="_B-tyUKwaEeuurZpZ_MDBKw"/>
                <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_yc6RUKwZEeuurZpZ_MDBKw" name="ActionExecutionSpecification58" covered="_V87jcKWnEeuDvJpHXMpY9A" finish="_yc8GgKwZEeuurZpZ_MDBKw" start="_B-uZYKwaEeuurZpZ_MDBKw"/>
                <guard xmi:type="uml:InteractionConstraint" xmi:id="_2DogYawZEeuurZpZ_MDBKw" name="guard">
                  <specification xmi:type="uml:LiteralString" xmi:id="_ARYt0KwaEeuurZpZ_MDBKw" value="if tenant's satified          of the result"/>
                </guard>
              </operand>
            </fragment>
            <message xmi:type="uml:Message" xmi:id="_i1Q48KwXEeuurZpZ_MDBKw" name="tenant's click on &quot;more questions&quot; button" messageSort="asynchCall" receiveEvent="_i1SHEKwXEeuurZpZ_MDBKw" sendEvent="_i1RgAKwXEeuurZpZ_MDBKw" signature="_WvmU0KbLEeut96yX7t5ziQ"/>
            <message xmi:type="uml:Message" xmi:id="_APYNkKwYEeuurZpZ_MDBKw" name="" receiveEvent="_APZbsKwYEeuurZpZ_MDBKw" sendEvent="_APY0oKwYEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_CShKAKwYEeuurZpZ_MDBKw" name="display a new question" messageSort="reply" receiveEvent="_CSiYIKwYEeuurZpZ_MDBKw" sendEvent="_CShxEKwYEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_VXxjoKwYEeuurZpZ_MDBKw" name="tenant's answer to the question" messageSort="asynchCall" receiveEvent="_VXyxwKwYEeuurZpZ_MDBKw" sendEvent="_VXyKsKwYEeuurZpZ_MDBKw" signature="_lf-okKd-EeuHaazZG4EP4A"/>
            <message xmi:type="uml:Message" xmi:id="_g5deIKwYEeuurZpZ_MDBKw" name="Message32" receiveEvent="_g5fTUKwYEeuurZpZ_MDBKw" sendEvent="_g5esQKwYEeuurZpZ_MDBKw" signature="_I6KtMKWmEeuDvJpHXMpY9A"/>
            <message xmi:type="uml:Message" xmi:id="_s3k18KwYEeuurZpZ_MDBKw" name="return adapted AVF" messageSort="reply" receiveEvent="_s3mEEKwYEeuurZpZ_MDBKw" sendEvent="_s3ldAKwYEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_HlKS4KwZEeuurZpZ_MDBKw" name="Message40" messageSort="asynchCall" receiveEvent="_HlLhAKwZEeuurZpZ_MDBKw" sendEvent="_HlK58KwZEeuurZpZ_MDBKw" signature="_7LCUgKwYEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_Z1R0QKwZEeuurZpZ_MDBKw" name="" receiveEvent="_Z1TCYKwZEeuurZpZ_MDBKw" sendEvent="_Z1SbUKwZEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_dfjtoKwZEeuurZpZ_MDBKw" name="Message53" receiveEvent="_dfk7wKwZEeuurZpZ_MDBKw" sendEvent="_dfkUsKwZEeuurZpZ_MDBKw" signature="_VKs_UF_AEeqAAb4u4HLI7w"/>
            <message xmi:type="uml:Message" xmi:id="_o9B2gKwZEeuurZpZ_MDBKw" name="display the sorted apartment list" messageSort="reply" receiveEvent="_o9DEoKwZEeuurZpZ_MDBKw" sendEvent="_o9CdkKwZEeuurZpZ_MDBKw"/>
            <message xmi:type="uml:Message" xmi:id="_B-tyUKwaEeuurZpZ_MDBKw" name="" messageSort="asynchCall" receiveEvent="_B-vAcKwaEeuurZpZ_MDBKw" sendEvent="_B-uZYKwaEeuurZpZ_MDBKw" signature="_QZeiYKeeEeuzh8aae7HGjg"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_VlcsAGrAEeqG6NsufvOKcA" name="io.github.oliviercailloux.y2018">
      <packagedElement xmi:type="uml:Package" xmi:id="_1QqroF-_EeqAAb4u4HLI7w" name="apartment">
        <packagedElement xmi:type="uml:Class" xmi:id="_1N7WIF--EeqAAb4u4HLI7w" name="Apartment" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N9LUF--EeqAAb4u4HLI7w" name="LOGGER" visibility="private" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_1N9LUV--EeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(Apartment.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N9yYF--EeqAAb4u4HLI7w" name="floorArea" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N9yYV--EeqAAb4u4HLI7w" name="address" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N-ZcF--EeqAAb4u4HLI7w" name="nbBedrooms" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N-ZcV--EeqAAb4u4HLI7w" name="nbSleeping" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N-Zcl--EeqAAb4u4HLI7w" name="nbBathrooms" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_AgF--EeqAAb4u4HLI7w" name="terrace" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_AgV--EeqAAb4u4HLI7w" name="floorAreaTerrace" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_Agl--EeqAAb4u4HLI7w" name="description" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_nkF--EeqAAb4u4HLI7w" name="title" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_nkV--EeqAAb4u4HLI7w" name="wifi" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1N_nkl--EeqAAb4u4HLI7w" name="pricePerNight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1OAOoF--EeqAAb4u4HLI7w" name="nbMinNight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_1OAOoV--EeqAAb4u4HLI7w" name="tele" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OFHIF--EeqAAb4u4HLI7w" name="Apartment" specification="_1OCq4F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OJ_oF--EeqAAb4u4HLI7w" name="Apartment">
            <language>JAVA</language>
            <body>&#xD;
    this.floorArea = floorArea;&#xD;
    this.address = address;&#xD;
    this.nbBedrooms = 0;&#xD;
    this.nbSleeping = 0;&#xD;
    this.nbBathrooms = 0;&#xD;
    this.terrace = false;&#xD;
    this.floorAreaTerrace = 0;&#xD;
    this.description = &quot;&quot;;&#xD;
    this.title = title;&#xD;
    this.wifi = false;&#xD;
    this.pricePerNight = 0;&#xD;
    this.nbMinNight = 0;&#xD;
    this.tele = false;&#xD;
    checkArgument(floorArea >= 0, &quot;The floor area of the apartment cannot be negative&quot;);&#xD;
    checkArgument(address != &quot;&quot;, &quot;The address of the apartment must be specified&quot;);&#xD;
    checkArgument(title != &quot;&quot;, &quot;The title of the apartment must be specified&quot;);&#xD;
    LOGGER.info(&quot;the apartment has been created with success&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OL00F--EeqAAb4u4HLI7w" name="equals" specification="_1OJ_oV--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (!(obj instanceof Apartment))&#xD;
        return false;&#xD;
    Apartment apart = (Apartment) obj;&#xD;
    return apart.floorArea == floorArea &amp;&amp; apart.address.equals(address) &amp;&amp; apart.nbBedrooms == nbBedrooms &amp;&amp; apart.nbSleeping == nbSleeping &amp;&amp; apart.nbBathrooms == nbBathrooms &amp;&amp; apart.terrace == terrace &amp;&amp; apart.floorAreaTerrace == floorAreaTerrace &amp;&amp; apart.description.equals(description) &amp;&amp; apart.title.equals(title) &amp;&amp; apart.wifi == wifi &amp;&amp; apart.pricePerNight == pricePerNight &amp;&amp; apart.nbMinNight == nbMinNight &amp;&amp; apart.tele == tele;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1ONC8V--EeqAAb4u4HLI7w" name="toString" specification="_1OMb4F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    String floorAreaTS = &quot;\nFloor area : &quot; + Double.toString(floorArea) + &quot; square meters&quot;;&#xD;
    String addressTS = &quot;\nAddress : &quot; + address;&#xD;
    String titleTS = &quot;\nTitle : &quot; + title;&#xD;
    return floorAreaTS + addressTS + titleTS;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1ONqAV--EeqAAb4u4HLI7w" name="toFullString" specification="_1ONC8l--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    String dispTitle;&#xD;
    String dispAddress;&#xD;
    String dispFloorArea;&#xD;
    String dispNbBedrooms;&#xD;
    String dispNbSleeping;&#xD;
    String dispNbBathrooms;&#xD;
    String dispTerrace;&#xD;
    String dispFloorAreaTerrace;&#xD;
    String dispDescription;&#xD;
    String dispWifi;&#xD;
    String dispPricePerNight;&#xD;
    String dispNbMinNight;&#xD;
    String dispTele;&#xD;
    dispTitle = &quot;\nTitle : &quot; + title;&#xD;
    dispAddress = &quot;\nAddress : &quot; + address;&#xD;
    dispFloorArea = &quot;\nFloor area : &quot; + Double.toString(floorArea) + &quot; square meters&quot;;&#xD;
    dispNbBedrooms = &quot;\nNumber of bedrooms : &quot; + ((nbBedrooms == 0) ? &quot;N/A&quot; : Integer.toString(nbBedrooms) + &quot; bedroom(s)&quot;);&#xD;
    dispNbSleeping = &quot;\nNumber of sleeping (capacity) : &quot; + ((nbSleeping == 0) ? &quot;N/A&quot; : Integer.toString(nbSleeping) + &quot; person(s)&quot;);&#xD;
    dispNbBathrooms = &quot;\nNumber of bathrooms : &quot; + ((nbBathrooms == 0) ? &quot;N/A&quot; : Integer.toString(nbBathrooms) + &quot; bathroom(s)&quot;);&#xD;
    dispTerrace = &quot;\nTerrace : &quot; + ((terrace) ? &quot;Yes&quot; : &quot;No&quot;);&#xD;
    dispFloorAreaTerrace = (!(terrace) ? &quot;&quot; : &quot;\nTerrace floor area : &quot; + ((floorAreaTerrace == 0) ? &quot;N/A&quot; : Double.toString(floorAreaTerrace) + &quot; square meters&quot;));&#xD;
    dispDescription = &quot;\nDescription : &quot; + ((description == &quot;&quot;) ? &quot;N/A&quot; : description);&#xD;
    dispWifi = &quot;\nWifi : &quot; + ((wifi) ? &quot;Yes&quot; : &quot;No&quot;);&#xD;
    dispTele = &quot;\nTelevision : &quot; + ((tele) ? &quot;Yes&quot; : &quot;No&quot;);&#xD;
    dispPricePerNight = &quot;\nPrice per night : &quot; + ((pricePerNight == 0) ? &quot;N/A&quot; : Double.toString(pricePerNight) + &quot;€&quot;);&#xD;
    dispNbMinNight = &quot;\nNumber of night minimum to rent this apartment : &quot; + ((nbMinNight == 0) ? &quot;N/A&quot; : Integer.toString(nbMinNight) + &quot; night(s)&quot;);&#xD;
    return dispTitle + dispAddress + dispFloorArea + dispNbBedrooms + dispNbSleeping + dispNbBathrooms + dispTerrace + dispFloorAreaTerrace + dispDescription + dispWifi + dispPricePerNight + dispNbMinNight + dispTele;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OO4IF--EeqAAb4u4HLI7w" name="getFloorArea" specification="_1OOREF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return floorArea;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OPfMF--EeqAAb4u4HLI7w" name="getAddress" specification="_1OO4IV--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return address;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OQtUF--EeqAAb4u4HLI7w" name="getNbBedrooms" specification="_1OQGQF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return nbBedrooms;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OQtU1--EeqAAb4u4HLI7w" name="getNbSleeping" specification="_1OQtUV--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return nbSleeping;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1ORUYl--EeqAAb4u4HLI7w" name="getNbBathrooms" specification="_1ORUYF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return nbBathrooms;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OR7cV--EeqAAb4u4HLI7w" name="getTerrace" specification="_1ORUY1--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return terrace;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OSigF--EeqAAb4u4HLI7w" name="getFloorAreaTerrace" specification="_1OR7cl--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return floorAreaTerrace;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OTwoF--EeqAAb4u4HLI7w" name="getDescription" specification="_1OSigV--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return description;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1ObFYF--EeqAAb4u4HLI7w" name="getTitle" specification="_1OWz8F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return title;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1On5sF--EeqAAb4u4HLI7w" name="getWifi" specification="_1OiaIF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return wifi;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1OxDoF--EeqAAb4u4HLI7w" name="getPricePerNight" specification="_1OunYF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return pricePerNight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1O1VEF--EeqAAb4u4HLI7w" name="getNbMinNight" specification="_1OyRwF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return nbMinNight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1O3xUF--EeqAAb4u4HLI7w" name="getTele" specification="_1O2jMF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return tele;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1O60oF--EeqAAb4u4HLI7w" name="setFloorArea" specification="_1O4_cF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(floorArea >= 0, &quot;The floor area should not be negative&quot;);&#xD;
    this.floorArea = floorArea;&#xD;
    LOGGER.info(&quot;The floor area has been set to &quot; + floorArea);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1O_GEF--EeqAAb4u4HLI7w" name="setAddress" specification="_1O8p0F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(address != &quot;&quot;, &quot;The address should not be empty&quot;);&#xD;
    this.address = address;&#xD;
    LOGGER.info(&quot;The address has been set to &quot; + address);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PEloF--EeqAAb4u4HLI7w" name="setNbBedrooms" specification="_1PAUMF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBedrooms >= 0, &quot;The number of Bedrooms can not be negative&quot;);&#xD;
    this.nbBedrooms = nbBedrooms;&#xD;
    LOGGER.info(&quot;The number of bathrooms has been set to &quot; + nbBedrooms);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PO9sF--EeqAAb4u4HLI7w" name="setNbSleeping" specification="_1PKsQF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbSleeping >= 0, &quot;The accomodation capacity can not be negative&quot;);&#xD;
    this.nbSleeping = nbSleeping;&#xD;
    LOGGER.info(&quot;The number of sleepings has been set to &quot; + nbSleeping);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PTPIF--EeqAAb4u4HLI7w" name="setNbBathrooms" specification="_1PQy4F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBathrooms >= 0, &quot;The number of bathrooms can not be negative&quot;);&#xD;
    this.nbBathrooms = nbBathrooms;&#xD;
    LOGGER.info(&quot;The number of bathrooms has been set to &quot; + nbBathrooms);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1Paj4F--EeqAAb4u4HLI7w" name="setTerrace" specification="_1PVrYF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.terrace = terrace;&#xD;
    LOGGER.info(&quot;terrace has been set to &quot; + terrace);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PgqgF--EeqAAb4u4HLI7w" name="setFloorAreaTerrace" specification="_1PdnMF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument((this.terrace == false &amp;&amp; floorAreaTerrace == 0) || (this.terrace == true), &quot;The terrace can not have a floor area if it doesn't exists&quot;);&#xD;
    checkArgument(floorAreaTerrace >= 0, &quot;The floor area of the terrace can not be negative&quot;);&#xD;
    this.floorAreaTerrace = floorAreaTerrace;&#xD;
    LOGGER.info(&quot;The floor area of the terrace has been set to &quot; + floorAreaTerrace);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PljAF--EeqAAb4u4HLI7w" name="setDescription" specification="_1PjGwF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.description = description;&#xD;
    LOGGER.info(&quot;The description has been set to &quot; + description);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PqbgF--EeqAAb4u4HLI7w" name="setTitle" specification="_1Pn_QF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(title != &quot;&quot;, &quot;The title should not be empty&quot;);&#xD;
    this.title = title;&#xD;
    LOGGER.info(&quot;The title has been set to &quot; + floorArea);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1Ps3wV--EeqAAb4u4HLI7w" name="setWifi" specification="_1PsQsF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.wifi = wifi;&#xD;
    LOGGER.info(&quot;The wifi has been set to &quot; + wifi);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PuF4F--EeqAAb4u4HLI7w" name="setPricePerNight" specification="_1Pte0F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(pricePerNight >= 0, &quot;The price per night can not be negative&quot;);&#xD;
    this.pricePerNight = pricePerNight;&#xD;
    LOGGER.info(&quot;The price per night has been set to &quot; + pricePerNight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1Pv7EF--EeqAAb4u4HLI7w" name="setNbMinNight" specification="_1Pus8F--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbMinNight >= 0, &quot;The minimum number of nights can not be negative&quot;);&#xD;
    this.nbMinNight = nbMinNight;&#xD;
    LOGGER.info(&quot;The number minimum of night has been set to &quot; + nbMinNight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1PyXUF--EeqAAb4u4HLI7w" name="setTele" specification="_1PwiIF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.tele = tele;&#xD;
    LOGGER.info(&quot;The tele has been set to &quot; + tele);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1P2BsF--EeqAAb4u4HLI7w" name="hashCode" specification="_1P0MgF--EeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return Objects.hash(address, floorArea, nbBedrooms, nbSleeping, nbBathrooms, terrace, floorAreaTerrace, description, title, wifi, pricePerNight, nbMinNight, tele);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OCq4F--EeqAAb4u4HLI7w" name="Apartment" visibility="private" method="_1OFHIF--EeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OJ_oV--EeqAAb4u4HLI7w" name="equals" visibility="public" method="_1OL00F--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OKmsF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OKmsV--EeqAAb4u4HLI7w" name="obj"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OMb4F--EeqAAb4u4HLI7w" name="toString" visibility="public" method="_1ONC8V--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1ONC8F--EeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1ONC8l--EeqAAb4u4HLI7w" name="toFullString" visibility="public" method="_1ONqAV--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1ONqAF--EeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OOREF--EeqAAb4u4HLI7w" name="getFloorArea" visibility="public" method="_1OO4IF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OOREV--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OO4IV--EeqAAb4u4HLI7w" name="getAddress" visibility="public" method="_1OPfMF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OO4Il--EeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OQGQF--EeqAAb4u4HLI7w" name="getNbBedrooms" visibility="public" method="_1OQtUF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OQGQV--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OQtUV--EeqAAb4u4HLI7w" name="getNbSleeping" visibility="public" method="_1OQtU1--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OQtUl--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1ORUYF--EeqAAb4u4HLI7w" name="getNbBathrooms" visibility="public" method="_1ORUYl--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1ORUYV--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1ORUY1--EeqAAb4u4HLI7w" name="getTerrace" visibility="public" method="_1OR7cV--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OR7cF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OR7cl--EeqAAb4u4HLI7w" name="getFloorAreaTerrace" visibility="public" method="_1OSigF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OR7c1--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OSigV--EeqAAb4u4HLI7w" name="getDescription" visibility="public" method="_1OTwoF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OTJkF--EeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OWz8F--EeqAAb4u4HLI7w" name="getTitle" visibility="public" method="_1ObFYF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OYpIF--EeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OiaIF--EeqAAb4u4HLI7w" name="getWifi" visibility="public" method="_1On5sF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1OldcF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OunYF--EeqAAb4u4HLI7w" name="getPricePerNight" visibility="public" method="_1OxDoF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Ov1gF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1OyRwF--EeqAAb4u4HLI7w" name="getNbMinNight" visibility="public" method="_1O1VEF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Oy40F--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1O2jMF--EeqAAb4u4HLI7w" name="getTele" visibility="public" method="_1O3xUF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1O3KQF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1O4_cF--EeqAAb4u4HLI7w" name="setFloorArea" visibility="private" method="_1O60oF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1O6NkF--EeqAAb4u4HLI7w" name="floorArea">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1O8p0F--EeqAAb4u4HLI7w" name="setAddress" visibility="private" method="_1O_GEF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1O9Q4F--EeqAAb4u4HLI7w" name="address"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PAUMF--EeqAAb4u4HLI7w" name="setNbBedrooms" visibility="private" method="_1PEloF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PCJYF--EeqAAb4u4HLI7w" name="nbBedrooms">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PKsQF--EeqAAb4u4HLI7w" name="setNbSleeping" visibility="private" method="_1PO9sF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PNIgF--EeqAAb4u4HLI7w" name="nbSleeping">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PQy4F--EeqAAb4u4HLI7w" name="setNbBathrooms" visibility="private" method="_1PTPIF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PRZ8F--EeqAAb4u4HLI7w" name="nbBathrooms">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PVrYF--EeqAAb4u4HLI7w" name="setTerrace" visibility="private" method="_1Paj4F--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PYusF--EeqAAb4u4HLI7w" name="terrace">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PdnMF--EeqAAb4u4HLI7w" name="setFloorAreaTerrace" visibility="private" method="_1PgqgF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PfcYF--EeqAAb4u4HLI7w" name="floorAreaTerrace">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PjGwF--EeqAAb4u4HLI7w" name="setDescription" visibility="private" method="_1PljAF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Pk78F--EeqAAb4u4HLI7w" name="description"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1Pn_QF--EeqAAb4u4HLI7w" name="setTitle" visibility="private" method="_1PqbgF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Pp0cF--EeqAAb4u4HLI7w" name="title"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PsQsF--EeqAAb4u4HLI7w" name="setWifi" visibility="private" method="_1Ps3wV--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Ps3wF--EeqAAb4u4HLI7w" name="wifi">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1Pte0F--EeqAAb4u4HLI7w" name="setPricePerNight" visibility="private" method="_1PuF4F--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Pte0V--EeqAAb4u4HLI7w" name="pricePerNight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1Pus8F--EeqAAb4u4HLI7w" name="setNbMinNight" visibility="private" method="_1Pv7EF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PvUAF--EeqAAb4u4HLI7w" name="nbMinNight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1PwiIF--EeqAAb4u4HLI7w" name="setTele" visibility="private" method="_1PyXUF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1PxJMF--EeqAAb4u4HLI7w" name="tele">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_1P0MgF--EeqAAb4u4HLI7w" name="hashCode" visibility="public" method="_1P2BsF--EeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_1P0zkF--EeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SdV0QGbeEeqYDoGRuvwelQ" name="apartment" visibility="package"/>
          <nestedClassifier xmi:type="uml:Class" xmi:id="_1P324F--EeqAAb4u4HLI7w" name="Builder" visibility="public">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_1P9WcF--EeqAAb4u4HLI7w" name="apartmentToBuild" visibility="private" type="_1N7WIF--EeqAAb4u4HLI7w" isUnique="false"/>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QBA0F--EeqAAb4u4HLI7w" name="Builder" specification="_1P99gF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    apartmentToBuild = new Apartment();&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QEEIF--EeqAAb4u4HLI7w" name="build" specification="_1QCO8F--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    Apartment buildApartment = apartmentToBuild;&#xD;
    apartmentToBuild = new Apartment();&#xD;
    return buildApartment;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QL_8F--EeqAAb4u4HLI7w" name="setFloorArea" specification="_1QFSQF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.floorArea = floorArea;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QQ4cF--EeqAAb4u4HLI7w" name="setAddress" specification="_1QN1IF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.address = address;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QVw8F--EeqAAb4u4HLI7w" name="setTitle" specification="_1QTUsF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.title = title;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QaCYF--EeqAAb4u4HLI7w" name="setNbBedrooms" specification="_1QXmIF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.nbBedrooms = nbBedrooms;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QeT0F--EeqAAb4u4HLI7w" name="setNbSleeping" specification="_1Qb3kF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.nbSleeping = nbSleeping;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1Qh-MF--EeqAAb4u4HLI7w" name="setNbBathrooms" specification="_1Qfh8F--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.nbBathrooms = nbBathrooms;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QmPoF--EeqAAb4u4HLI7w" name="setFloorAreaTerrace" specification="_1QjMUF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.floorAreaTerrace = floorAreaTerrace;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1Qp6AF--EeqAAb4u4HLI7w" name="setPricePerNight" specification="_1QndwF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.pricePerNight = pricePerNight;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QtkYF--EeqAAb4u4HLI7w" name="setNbMinNight" specification="_1QqhEF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.nbMinNight = nbMinNight;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_1QxOwF--EeqAAb4u4HLI7w" name="setTerrace" specification="_1QuygF--EeqAAb4u4HLI7w">
              <language>JAVA</language>
              <body>&#xD;
    this.apartmentToBuild.terrace = terrace;&#xD;
    return this;&#xD;
</body>
            </ownedBehavior>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1P99gF--EeqAAb4u4HLI7w" name="Builder" visibility="public" method="_1QBA0F--EeqAAb4u4HLI7w"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QCO8F--EeqAAb4u4HLI7w" name="build" visibility="public" method="_1QEEIF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QC2AF--EeqAAb4u4HLI7w" type="_1N7WIF--EeqAAb4u4HLI7w" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QFSQF--EeqAAb4u4HLI7w" name="setFloorArea" visibility="public" method="_1QL_8F--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QKKwF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QLY4F--EeqAAb4u4HLI7w" name="floorArea">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QN1IF--EeqAAb4u4HLI7w" name="setAddress" visibility="public" method="_1QQ4cF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QPDQF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QQRYF--EeqAAb4u4HLI7w" name="address"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QTUsF--EeqAAb4u4HLI7w" name="setTitle" visibility="public" method="_1QVw8F--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QT7wF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QVJ4F--EeqAAb4u4HLI7w" name="title"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QXmIF--EeqAAb4u4HLI7w" name="setNbBedrooms" visibility="public" method="_1QaCYF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QY0QF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QZbUF--EeqAAb4u4HLI7w" name="nbBedrooms">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1Qb3kF--EeqAAb4u4HLI7w" name="setNbSleeping" visibility="public" method="_1QeT0F--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QceoF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QdswF--EeqAAb4u4HLI7w" name="nbSleeping">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1Qfh8F--EeqAAb4u4HLI7w" name="setNbBathrooms" visibility="public" method="_1Qh-MF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QgwEF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QhXIF--EeqAAb4u4HLI7w" name="nbBathrooms">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QjMUF--EeqAAb4u4HLI7w" name="setFloorAreaTerrace" visibility="public" method="_1QmPoF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QlBgF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QlokF--EeqAAb4u4HLI7w" name="floorAreaTerrace">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QndwF--EeqAAb4u4HLI7w" name="setPricePerNight" visibility="public" method="_1Qp6AF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1Qor4F--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QpS8F--EeqAAb4u4HLI7w" name="pricePerNight">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QqhEF--EeqAAb4u4HLI7w" name="setNbMinNight" visibility="public" method="_1QtkYF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QrvMF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QsWQF--EeqAAb4u4HLI7w" name="nbMinNight">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_1QuygF--EeqAAb4u4HLI7w" name="setTerrace" visibility="public" method="_1QxOwF--EeqAAb4u4HLI7w">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QvZkF--EeqAAb4u4HLI7w" type="_1P324F--EeqAAb4u4HLI7w" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_1QwAoF--EeqAAb4u4HLI7w" name="terrace">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedParameter>
            </ownedOperation>
          </nestedClassifier>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_i_F0QHEvEeq9ooUMj2JdaQ" name="ApartmentGenerator" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_i_xJsXEvEeq9ooUMj2JdaQ" name="random" visibility="private" type="_i_F0QnEvEeq9ooUMj2JdaQ" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_i_3QUHEvEeq9ooUMj2JdaQ" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_i_3QUXEvEeq9ooUMj2JdaQ" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ApartmentGenerator.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jAcfIHEvEeq9ooUMj2JdaQ" name="ApartmentGenerator" specification="_i_3QUnEvEeq9ooUMj2JdaQ">
            <language>JAVA</language>
            <body>&#xD;
    random = new Random();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jA7nUHEvEeq9ooUMj2JdaQ" name="generateRandomApartment" specification="_jAilwHEvEeq9ooUMj2JdaQ">
            <language>JAVA</language>
            <body>&#xD;
    LOGGER.info(&quot;Beginning of random generation of an Apartment&quot;);&#xD;
    final ImmutableList&lt;String> titles = ImmutableList.of(&quot;Location Apartement 1223&quot;, &quot;Location Apartement 2434&quot;, &quot;Location Apartement 4353&quot;, &quot;Location Apartement 3423&quot;, &quot;Location Apartement 4234&quot;, &quot;Location Apartement 3424&quot;, &quot;Location Apartement 3477&quot;, &quot;Location Apartement 376&quot;, &quot;Location Apartement 678&quot;, &quot;Location Apartement 757&quot;);&#xD;
    final ImmutableList&lt;String> address = ImmutableList.of(&quot;2 avenue Pasteur 94160 Saint-mandé&quot;, &quot;8 avenue de Paris 94160 Saint-mandé&quot;, &quot;5 avenue des Champs-Elysées 75016&quot;, &quot;13 rue des Arts 75001&quot;, &quot;10 rue de Dauphine 75016&quot;, &quot;33 rue de Tolbiac 75013&quot;, &quot;33 rue de Tolbiac 75013&quot;, &quot; &quot;, &quot; &quot;, &quot; &quot;);&#xD;
    int n = (int) (Math.random() * titles.size() - 1);&#xD;
    int m = (int) (Math.random() * address.size() - 1);&#xD;
    double floorArea = simulateRandomDraw(65d, 21d);&#xD;
    boolean terrace = (Math.random() * 2 >= 1) ? true : false;&#xD;
    double floorAreaTerrace = (terrace) ? simulateRandomDraw(15d, 2d) : 0;&#xD;
    int nbMinNight = (int) (Math.random() * 8);&#xD;
    int averageRoomArea = (int) (10 + (Math.random() * 20));&#xD;
    int nbBedrooms = Math.max(((int) (floorArea / averageRoomArea)) - 1, 0);&#xD;
    double pricePerMeterSquared = simulateRandomDraw(8d, 3d);&#xD;
    double pricePerNight = floorArea * pricePerMeterSquared;&#xD;
    int nbSleeping = ((int) (1 + Math.random() * 4)) * nbBedrooms;&#xD;
    int nbBathrooms = (int) (Math.random() * nbBedrooms);&#xD;
    Apartment.Builder builder = new Apartment.Builder();&#xD;
    builder.setFloorArea(floorArea);&#xD;
    builder.setAddress(address.get(m));&#xD;
    builder.setTitle(titles.get(n));&#xD;
    builder.setNbBedrooms(nbBedrooms);&#xD;
    builder.setNbSleeping(nbSleeping);&#xD;
    builder.setNbBathrooms(nbBathrooms);&#xD;
    builder.setTerrace(terrace);&#xD;
    builder.setPricePerNight(pricePerNight);&#xD;
    builder.setNbMinNight(nbMinNight);&#xD;
    builder.setFloorAreaTerrace(floorAreaTerrace);&#xD;
    Apartment a = builder.build();&#xD;
    LOGGER.info(&quot;Generation done successfully&quot;);&#xD;
    return a;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jBscUHEvEeq9ooUMj2JdaQ" name="simulateRandomDraw" specification="_jBOiQHEvEeq9ooUMj2JdaQ">
            <language>JAVA</language>
            <body>&#xD;
    double draw = random.nextGaussian();&#xD;
    return deviation * draw + mean;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_jCMyoXEvEeq9ooUMj2JdaQ" name="main" specification="_jB53sHEvEeq9ooUMj2JdaQ">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentGenerator generator = new ApartmentGenerator();&#xD;
    generator.generateRandomApartment();&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_i_3QUnEvEeq9ooUMj2JdaQ" name="ApartmentGenerator" visibility="public" method="_jAcfIHEvEeq9ooUMj2JdaQ"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_jAilwHEvEeq9ooUMj2JdaQ" name="generateRandomApartment" visibility="public" method="_jA7nUHEvEeq9ooUMj2JdaQ">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_jA0SkHEvEeq9ooUMj2JdaQ" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_jBOiQHEvEeq9ooUMj2JdaQ" name="simulateRandomDraw" visibility="private" method="_jBscUHEvEeq9ooUMj2JdaQ">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_jBOiQXEvEeq9ooUMj2JdaQ" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_jBOiQnEvEeq9ooUMj2JdaQ" name="mean">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_jBUo4HEvEeq9ooUMj2JdaQ" name="deviation">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_jB53sHEvEeq9ooUMj2JdaQ" name="main" visibility="public" isStatic="true" method="_jCMyoXEvEeq9ooUMj2JdaQ">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_jB_-UHEvEeq9ooUMj2JdaQ" name="args" type="__EuesHEuEeq9ooUMj2JdaQ">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jCGsAHEvEeq9ooUMj2JdaQ"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jCMyoHEvEeq9ooUMj2JdaQ" value="*"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_jRnIYHHDEeq5FbnHuCmiFw" client="_i_F0QHEvEeq9ooUMj2JdaQ" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_UBdi0Jj5EeqYP-aD6j0wRg" name="ApartmentFactory" visibility="public" isAbstract="true">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_UBeJ4Jj5EeqYP-aD6j0wRg" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_UBew8Jj5EeqYP-aD6j0wRg" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ApartmentFactory.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_UBew8Zj5EeqYP-aD6j0wRg" name="rand" visibility="private" isStatic="true" type="_i_F0QnEvEeq9ooUMj2JdaQ" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_UBfYAJj5EeqYP-aD6j0wRg" name="defaultValue">
              <language>JAVA</language>
              <body>new Random()</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_UBk3kJj5EeqYP-aD6j0wRg" name="URL_API_ADDRESS" visibility="private" isLeaf="true" isStatic="true" type="__EuesHEuEeq9ooUMj2JdaQ" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_UBleoJj5EeqYP-aD6j0wRg" name="defaultValue">
              <language>JAVA</language>
              <body>&quot;https://api-adresse.data.gouv.fr/reverse/&quot;</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UB8rAJj5EeqYP-aD6j0wRg" name="generateRandomRealApartment" specification="_UBmswJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    return generateRandomApartment(true);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UB9SEJj5EeqYP-aD6j0wRg" name="generateRandomApartment" specification="_UB8rAZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    try {&#xD;
        return generateRandomApartment(false);&#xD;
    } catch (ClientErrorExceptionAddressApiException |  e) {&#xD;
        throw new IllegalStateException(e);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCGcAJj5EeqYP-aD6j0wRg" name="generateRandomApartment" specification="_UB9SEZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    double floorArea = simulateRandomDraw(65d, 21d);&#xD;
    String address = realAddress ? getOnlineRandomAddress() : getRandomAddress();&#xD;
    int averageRoomArea = 10 + rand.nextInt(20);&#xD;
    int nbBedrooms = Math.max(((int) (floorArea / averageRoomArea)) - 1, 1);&#xD;
    int nbSleeping = (1 + rand.nextInt(4)) * nbBedrooms;&#xD;
    int nbBathrooms = 1 + rand.nextInt(nbBedrooms);&#xD;
    boolean hasTerrace = Math.random() >= 0.5;&#xD;
    double floorAreaTerrace = (hasTerrace) ? simulateRandomDraw(15d, 2d) : 0;&#xD;
    String title = &quot;Location Apartement &quot; + rand.nextInt(10000);&#xD;
    String description = &quot;This apartment has &quot; + nbBedrooms + &quot; bedrooms and a size of &quot; + floorArea + &quot;square meters&quot;;&#xD;
    boolean wifi = Math.random() >= 0.5;&#xD;
    double pricePerNight = floorArea * simulateRandomDraw(11d, 3d);&#xD;
    boolean tele = Math.random() >= 0.5;&#xD;
    int nbMinNight = rand.nextInt(700) + 1;&#xD;
    Builder apartBuilder = new Builder();&#xD;
    return apartBuilder.setFloorArea(floorArea).setAddress(address).setNbBedrooms(nbBedrooms).setNbSleeping(nbSleeping).setNbBathrooms(nbBathrooms).setTerrace(hasTerrace).setFloorAreaTerrace(floorAreaTerrace).setDescription(description).setTitle(title).setWifi(wifi).setPricePerNight(pricePerNight).setNbMinNight(nbMinNight).setTele(tele).build();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCJfUJj5EeqYP-aD6j0wRg" name="generateRandomApartments" specification="_UCHDEJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    try {&#xD;
        return generateRandomApartmentList(nbApartment, false);&#xD;
    } catch (ClientErrorExceptionAddressApiException |  e) {&#xD;
        throw new IllegalStateException(e);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCL7kJj5EeqYP-aD6j0wRg" name="generateRandomRealApartments" specification="_UCJfUZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    return generateRandomApartmentList(nbApartment, true);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCNwwJj5EeqYP-aD6j0wRg" name="generateRandomApartmentList" specification="_UCL7kZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    if (nbApartment &lt;= 0) {&#xD;
        throw new IllegalArgumentException(&quot;You must indicate a number of apartments > 0&quot;);&#xD;
    }&#xD;
    List&lt;Apartment> listApartment = new ArrayList&lt;>();&#xD;
    for (int i = 0; i &lt; nbApartment; i++) {&#xD;
        listApartment.add(realAddress ? generateRandomRealApartment() : generateRandomApartment());&#xD;
    }&#xD;
    return listApartment;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCO-4Zj5EeqYP-aD6j0wRg" name="simulateRandomDraw" specification="_UCNwwZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    double draw = Math.abs(rand.nextGaussian());&#xD;
    return deviation * draw + mean;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCQNAJj5EeqYP-aD6j0wRg" name="getOnlineRandomAddress" specification="_UCO-4pj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    /**
		 * An API call has an average 20% chance of failing. Given this highprobability,
		 * we iterate until we get a correct result (a good address). RETRY corresponds
		 * to the maximum test value in case the API does not return the address field.
		 * In the case of an API error (for example 500, or others), jax-rs throws an
		 * error of type &lt;code>ClientErrorException&lt;/code> In the event that we reach
		 * beyond the RETRY tests, and we still do not have a good address, we throw an
		 * exception
		 */&#xD;
    final int RETRY = 5;&#xD;
    Optional&lt;String> address = Optional.empty();&#xD;
    // Latitude and longitude for Ile de France&#xD;
    final double LAT_IDF = 48.8_499_198d;&#xD;
    final double LONG_IDF = 2.6_370_411d;&#xD;
    // Open a new client JAX-RS&#xD;
    final Client client = ClientBuilder.newClient();&#xD;
    try {&#xD;
        for (int i = 1; i &lt;= RETRY; i++) {&#xD;
            // Latitude and longitude generation&#xD;
            double lat = Math.round(LAT_IDF * 10.0d) / 10.0d;&#xD;
            double lng = Math.round(LONG_IDF * 10.0d) / 10.0d;&#xD;
            String longitude = String.valueOf(lng) + String.valueOf(rand.nextInt((99_999 - 10000) + 1) + 10_000);&#xD;
            String latitude = String.valueOf(lat) + String.valueOf(rand.nextInt((99_999 - 10000) + 1) + 10_000);&#xD;
            // Call API&#xD;
            address = tryToGetOnlineRandomAddress(client, longitude, latitude);&#xD;
            if (address.isPresent()) {&#xD;
                break;&#xD;
            }&#xD;
        }&#xD;
    } finally {&#xD;
        // We caught an exception that seems abnormal,&#xD;
        // we close the client and throw the exception again&#xD;
        client.close();&#xD;
    }&#xD;
    if (address.isPresent()) {&#xD;
        return address.get();&#xD;
    }&#xD;
    // We were unable to retrieve a correct address&#xD;
    throw new AddressApiException(&quot;It appears that the API has failed to return a correct address.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCSCMJj5EeqYP-aD6j0wRg" name="getRandomAddress" specification="_UCQNAZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    try {&#xD;
        return ApartmentFactory.getOnlineRandomAddress();&#xD;
    } catch (ClientErrorExceptionAddressApiException |  e) {&#xD;
        LOGGER.error(&quot;Problem while getting random address {}&quot;, e.toString());&#xD;
        StringBuilder sb = new StringBuilder();&#xD;
        sb.append(ApartmentFactory.rand.nextInt(3000)).append(&quot; rue de l'appel échoué &quot;).append(ApartmentFactory.rand.nextInt(19) + 75001).append(&quot; Paris &quot;);&#xD;
        return sb.toString();&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCmLQJj5EeqYP-aD6j0wRg" name="generateApartmentsFromJsonPath" specification="_UCSpQJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    return JsonConvert.jsonToApartments(jsonFilePath);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UCrDwJj5EeqYP-aD6j0wRg" name="getDefaultApartments" specification="_UCmyUJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    return JsonConvert.getDefaultApartments();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_UDSu0Jj5EeqYP-aD6j0wRg" name="tryToGetOnlineRandomAddress" specification="_UCuuIZj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    checkNotNull(client, &quot;client can't be null&quot;);&#xD;
    checkNotNull(longitude, &quot;longitude can't be null&quot;);&#xD;
    checkNotNull(latitude, &quot;latitude can't be null&quot;);&#xD;
    Optional&lt;String> address = Optional.empty();&#xD;
    WebTarget target = client.target(URL_API_ADDRESS).queryParam(&quot;lon&quot;, longitude).queryParam(&quot;lat&quot;, latitude);&#xD;
    LOGGER.info(&quot;Address API Call : {}&quot;, target.getUri().toString());&#xD;
    String jsonString = target.request(MediaType.TEXT_PLAIN).get(String.class);&#xD;
    checkNotNull(jsonString, &quot;jsonString cannot be null&quot;);&#xD;
    checkArgument(!jsonString.isBlank(), &quot;jsonString cannot be blank&quot;);&#xD;
    try (JsonReader jr = Json.createReader(new StringReader(jsonString))) {&#xD;
        JsonObject json = jr.readObject();&#xD;
        JsonArray features = json.get(&quot;features&quot;).asJsonArray();&#xD;
        if (!features.isEmpty()) {&#xD;
            JsonObject properties = features.get(0).asJsonObject().get(&quot;properties&quot;).asJsonObject();&#xD;
            address = Optional.ofNullable(properties.getString(&quot;label&quot;));&#xD;
        }&#xD;
    }&#xD;
    return address;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UBmswJj5EeqYP-aD6j0wRg" name="generateRandomRealApartment" visibility="public" isStatic="true" method="_UB8rAJj5EeqYP-aD6j0wRg" raisedException="_UBwdwpj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UBvPoJj5EeqYP-aD6j0wRg" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UB8rAZj5EeqYP-aD6j0wRg" name="generateRandomApartment" visibility="public" isStatic="true" method="_UB9SEJj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UB8rApj5EeqYP-aD6j0wRg" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UB9SEZj5EeqYP-aD6j0wRg" name="generateRandomApartment" visibility="private" isStatic="true" method="_UCGcAJj5EeqYP-aD6j0wRg" raisedException="_UBwdwpj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCCKkJj5EeqYP-aD6j0wRg" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCDYsJj5EeqYP-aD6j0wRg" name="realAddress">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCHDEJj5EeqYP-aD6j0wRg" name="generateRandomApartments" visibility="public" isStatic="true" method="_UCJfUJj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCHqIJj5EeqYP-aD6j0wRg" direction="return">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UCHqIZj5EeqYP-aD6j0wRg"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UCHqIpj5EeqYP-aD6j0wRg" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCI4QJj5EeqYP-aD6j0wRg" name="nbApartment">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCJfUZj5EeqYP-aD6j0wRg" name="generateRandomRealApartments" visibility="public" isStatic="true" method="_UCL7kJj5EeqYP-aD6j0wRg" raisedException="_UBwdwpj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCKGYJj5EeqYP-aD6j0wRg" direction="return">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UCKGYZj5EeqYP-aD6j0wRg"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UCKGYpj5EeqYP-aD6j0wRg" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCKtcJj5EeqYP-aD6j0wRg" name="nbApartment">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCL7kZj5EeqYP-aD6j0wRg" name="generateRandomApartmentList" visibility="private" isStatic="true" method="_UCNwwJj5EeqYP-aD6j0wRg" raisedException="_UBwdwpj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCMioJj5EeqYP-aD6j0wRg" direction="return">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UCMioZj5EeqYP-aD6j0wRg"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UCMiopj5EeqYP-aD6j0wRg" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCMio5j5EeqYP-aD6j0wRg" name="nbApartment">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCNJsJj5EeqYP-aD6j0wRg" name="realAddress">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCNwwZj5EeqYP-aD6j0wRg" name="simulateRandomDraw" visibility="private" isStatic="true" method="_UCO-4Zj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCOX0Jj5EeqYP-aD6j0wRg" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCOX0Zj5EeqYP-aD6j0wRg" name="mean">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCO-4Jj5EeqYP-aD6j0wRg" name="deviation">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCO-4pj5EeqYP-aD6j0wRg" name="getOnlineRandomAddress" visibility="private" isStatic="true" method="_UCQNAJj5EeqYP-aD6j0wRg" raisedException="_UBwdwpj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCPl8Jj5EeqYP-aD6j0wRg" type="__EuesHEuEeq9ooUMj2JdaQ" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCQNAZj5EeqYP-aD6j0wRg" name="getRandomAddress" visibility="private" isStatic="true" method="_UCSCMJj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCRbIJj5EeqYP-aD6j0wRg" type="__EuesHEuEeq9ooUMj2JdaQ" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCSpQJj5EeqYP-aD6j0wRg" name="generateApartmentsFromJsonPath" visibility="public" isStatic="true" method="_UCmLQJj5EeqYP-aD6j0wRg" raisedException="_jhOesHE0Eeq9ooUMj2JdaQ">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCTQUJj5EeqYP-aD6j0wRg" direction="return">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UCT3YJj5EeqYP-aD6j0wRg"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UClkMJj5EeqYP-aD6j0wRg" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UClkMZj5EeqYP-aD6j0wRg" name="jsonFilePath" type="_OIsDgJj3EeqYP-aD6j0wRg"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCmyUJj5EeqYP-aD6j0wRg" name="getDefaultApartments" visibility="public" isStatic="true" method="_UCrDwJj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCoAcJj5EeqYP-aD6j0wRg" direction="return">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UCqcsJj5EeqYP-aD6j0wRg"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UCqcsZj5EeqYP-aD6j0wRg" value="*"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_UCuuIZj5EeqYP-aD6j0wRg" name="tryToGetOnlineRandomAddress" visibility="private" isStatic="true" method="_UDSu0Jj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UCy_kJj5EeqYP-aD6j0wRg" type="_UCvVMJj5EeqYP-aD6j0wRg" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UC0NsJj5EeqYP-aD6j0wRg" name="client" type="_UCsR4Jj5EeqYP-aD6j0wRg"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UC0NsZj5EeqYP-aD6j0wRg" name="longitude" type="__EuesHEuEeq9ooUMj2JdaQ"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_UDBpEJj5EeqYP-aD6j0wRg" name="latitude" type="__EuesHEuEeq9ooUMj2JdaQ"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_yaPfIJj5EeqYP-aD6j0wRg" client="_UBdi0Jj5EeqYP-aD6j0wRg" supplier="_t0NIIJj5EeqYP-aD6j0wRg"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_z7RNAJj5EeqYP-aD6j0wRg" client="_UBdi0Jj5EeqYP-aD6j0wRg" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_t0NIIJj5EeqYP-aD6j0wRg" name="AddressApiException" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_t0cYsJj5EeqYP-aD6j0wRg" general="_t0QygJj5EeqYP-aD6j0wRg"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_t0fcAJj5EeqYP-aD6j0wRg" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_t0gDEJj5EeqYP-aD6j0wRg" name="defaultValue">
              <language>JAVA</language>
              <body>8057892188727057681L</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_t01aQJj5EeqYP-aD6j0wRg" name="AddressApiException" specification="_t0gqIJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    super(message);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_t1s88Jj5EeqYP-aD6j0wRg" name="AddressApiException" specification="_t1TUUJj5EeqYP-aD6j0wRg">
            <language>JAVA</language>
            <body>&#xD;
    super(message, cause);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_t0gqIJj5EeqYP-aD6j0wRg" name="AddressApiException" visibility="public" method="_t01aQJj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_t0zlEJj5EeqYP-aD6j0wRg" name="message" type="__EuesHEuEeq9ooUMj2JdaQ"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_t1TUUJj5EeqYP-aD6j0wRg" name="AddressApiException" visibility="public" method="_t1s88Jj5EeqYP-aD6j0wRg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_t1loMJj5EeqYP-aD6j0wRg" name="message" type="__EuesHEuEeq9ooUMj2JdaQ"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_t1oEcJj5EeqYP-aD6j0wRg" name="cause" type="_t0_yUJj5EeqYP-aD6j0wRg"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_P7aeAJj6EeqYP-aD6j0wRg" client="_UBdi0Jj5EeqYP-aD6j0wRg" supplier="_OIB8MJj3EeqYP-aD6j0wRg"/>
        <packagedElement xmi:type="uml:Package" xmi:id="_bC6CwJjtEeqYCK4Btw7kWQ" name="json">
          <packagedElement xmi:type="uml:Class" xmi:id="_OIB8MJj3EeqYP-aD6j0wRg" name="JsonConvert" visibility="public" isAbstract="true">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_OILGIJj3EeqYP-aD6j0wRg" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_OIP-oJj3EeqYP-aD6j0wRg" name="defaultValue">
                <language>JAVA</language>
                <body>LoggerFactory.getLogger(JsonConvert.class)</body>
              </defaultValue>
            </ownedAttribute>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OJNA4Jj3EeqYP-aD6j0wRg" name="getUniqueExportPath" specification="_OIcL4Jj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    return Path.of(&quot;exportApartments&quot; + System.currentTimeMillis() + &quot;.json&quot;);&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OJbDUJj3EeqYP-aD6j0wRg" name="startApartments" specification="_OJXY8Jj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    try {&#xD;
        URI ressource = JsonConvert.class.getResource(&quot;defaultJsonToApartments.json&quot;).toURI();&#xD;
        return Path.of(ressource);&#xD;
    } catch (URISyntaxException e) {&#xD;
        throw new VerifyException(e);&#xD;
    }&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OJ0E4Jj3EeqYP-aD6j0wRg" name="getDefaultApartments" specification="_OJeGoJj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    Path apartPath = startApartments();&#xD;
    try {&#xD;
        return jsonToApartments(apartPath);&#xD;
    } catch (IOException io) {&#xD;
        throw new IllegalStateException(&quot;We are reading a resource file, it should not have an Exception&quot;, io);&#xD;
    }&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OKGYwJj3EeqYP-aD6j0wRg" name="jsonToApartments" specification="_OJ3IMJj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    String jsonString = Files.readString(jsonPath);&#xD;
    List&lt;Apartment.Builder> apartmentsBuild;&#xD;
    List&lt;Apartment> apartments = new ArrayList&lt;>();&#xD;
    LOGGER.info(&quot;Create ArrayList of Apartment&quot;);&#xD;
    try (Jsonb jsonb = JsonbBuilder.create()) {&#xD;
        LOGGER.info(&quot;Create Json builder&quot;);&#xD;
        apartmentsBuild = jsonb.fromJson(jsonString, new ArrayList&lt;Apartment.Builder>() {&#xD;
        }.getClass().getGenericSuperclass());&#xD;
    } catch (Exception e) {&#xD;
        throw new IllegalArgumentException(e);&#xD;
    }&#xD;
    for (Builder apartmentToBuild : apartmentsBuild) {&#xD;
        apartments.add(apartmentToBuild.build());&#xD;
    }&#xD;
    return apartments;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OKfaUJj3EeqYP-aD6j0wRg" name="apartmentsToJson" specification="_OKL4UJj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    Path defaultPath = getUniqueExportPath();&#xD;
    try {&#xD;
        apartmentsToJson(listApartments, defaultPath);&#xD;
    } catch (IOException io) {&#xD;
        throw new IllegalStateException(&quot;We write in the current file, the Path exists&quot;, io);&#xD;
    }&#xD;
    return defaultPath.toAbsolutePath();&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OLQPUJj3EeqYP-aD6j0wRg" name="apartmentsToJson" specification="_OKqZcJj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    Files.writeString(jsonPath, apartmentsToJsonString(listApartments));&#xD;
    LOGGER.info(&quot;Apartment have been converted with success&quot;);&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OLk_cJj3EeqYP-aD6j0wRg" name="apartmentsToJsonString" specification="_OLUgwJj3EeqYP-aD6j0wRg">
              <language>JAVA</language>
              <body>&#xD;
    try (Jsonb jsonb = JsonbBuilder.create()) {&#xD;
        return jsonb.toJson(listApartments);&#xD;
    } catch (Exception e) {&#xD;
        throw new IllegalStateException(e);&#xD;
    }&#xD;
</body>
            </ownedBehavior>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OIcL4Jj3EeqYP-aD6j0wRg" name="getUniqueExportPath" visibility="private" isStatic="true" method="_OJNA4Jj3EeqYP-aD6j0wRg">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJLLsJj3EeqYP-aD6j0wRg" type="_OIsDgJj3EeqYP-aD6j0wRg" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OJXY8Jj3EeqYP-aD6j0wRg" name="startApartments" visibility="private" isStatic="true" method="_OJbDUJj3EeqYP-aD6j0wRg">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJZOIJj3EeqYP-aD6j0wRg" type="_OIsDgJj3EeqYP-aD6j0wRg" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OJeGoJj3EeqYP-aD6j0wRg" name="getDefaultApartments" visibility="public" isStatic="true" method="_OJ0E4Jj3EeqYP-aD6j0wRg">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJxBkJj3EeqYP-aD6j0wRg" direction="return">
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OJxBkZj3EeqYP-aD6j0wRg"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OJzd0Jj3EeqYP-aD6j0wRg" value="*"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OJ3IMJj3EeqYP-aD6j0wRg" name="jsonToApartments" visibility="public" isStatic="true" method="_OKGYwJj3EeqYP-aD6j0wRg" raisedException="_jhOesHE0Eeq9ooUMj2JdaQ">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OJ3vQJj3EeqYP-aD6j0wRg" direction="return">
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OJ4WUJj3EeqYP-aD6j0wRg"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OJ4WUZj3EeqYP-aD6j0wRg" value="*"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OKA5MJj3EeqYP-aD6j0wRg" name="jsonPath" type="_OIsDgJj3EeqYP-aD6j0wRg"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OKL4UJj3EeqYP-aD6j0wRg" name="apartmentsToJson" visibility="public" isStatic="true" method="_OKfaUJj3EeqYP-aD6j0wRg">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OKMfYJj3EeqYP-aD6j0wRg" type="_OIsDgJj3EeqYP-aD6j0wRg" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OKWQYJj3EeqYP-aD6j0wRg" name="listApartments">
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OKbv8Jj3EeqYP-aD6j0wRg"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OKeMMJj3EeqYP-aD6j0wRg" value="*"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OKqZcJj3EeqYP-aD6j0wRg" name="apartmentsToJson" visibility="public" isStatic="true" method="_OLQPUJj3EeqYP-aD6j0wRg" raisedException="_jhOesHE0Eeq9ooUMj2JdaQ">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OK0xgJj3EeqYP-aD6j0wRg" name="listApartments">
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OK9UYJj3EeqYP-aD6j0wRg"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OK_JkJj3EeqYP-aD6j0wRg" value="*"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OLGeUJj3EeqYP-aD6j0wRg" name="jsonPath" type="_OIsDgJj3EeqYP-aD6j0wRg"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_OLUgwJj3EeqYP-aD6j0wRg" name="apartmentsToJsonString" visibility="public" isStatic="true" method="_OLk_cJj3EeqYP-aD6j0wRg">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OLdDoJj3EeqYP-aD6j0wRg" type="__EuesHEuEeq9ooUMj2JdaQ" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_OLe40Jj3EeqYP-aD6j0wRg" name="listApartments">
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OLjKQJj3EeqYP-aD6j0wRg"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OLkYYJj3EeqYP-aD6j0wRg" value="*"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Dependency" xmi:id="_ZVIt0Jj3EeqYP-aD6j0wRg" client="_OIB8MJj3EeqYP-aD6j0wRg" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_JAqEUF_AEeqAAb4u4HLI7w" name="distance">
        <packagedElement xmi:type="uml:Class" xmi:id="_ESBK8F_AEeqAAb4u4HLI7w" name="DistanceSubway" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESByAF_AEeqAAb4u4HLI7w" name="startPoint" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESByAV_AEeqAAb4u4HLI7w" name="endPoint" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESE1UF_AEeqAAb4u4HLI7w" name="dist" visibility="private" type="_ESCZE1_AEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESJGwF_AEeqAAb4u4HLI7w" name="startCoordinate" visibility="private" type="_ESE1Ul_AEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESK78F_AEeqAAb4u4HLI7w" name="endCoordinate" visibility="private" type="_ESE1Ul_AEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ESMKEF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_ESNYMF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(DistanceSubway.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ESWiIF_AEeqAAb4u4HLI7w" name="DistanceSubway" specification="_ESOmUF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (startPoint == null || endPoint == null)&#xD;
        throw new IllegalArgumentException(&quot;Address is not a valid object&quot;);&#xD;
    if (startPoint.length() == 0 || endPoint.length() == 0)&#xD;
        throw new IllegalArgumentException(&quot;Address is empty&quot;);&#xD;
    this.endPoint = endPoint;&#xD;
    this.startPoint = startPoint;&#xD;
    try {&#xD;
        this.dist = new GeoApiContext.Builder().apiKey(apiKey).build();&#xD;
    } catch (IllegalStateException e) {&#xD;
        LOGGER.error(&quot;The api key is not valid&quot; + e.getMessage());&#xD;
        throw new IllegalStateException(&quot;ERROR : The api key is not valid, please be sure you have a valid key&quot; + e.getMessage());&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ESjWcF_AEeqAAb4u4HLI7w" name="DistanceSubway" specification="_ESZlcF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.startCoordinate = startCoordinate;&#xD;
    this.endCoordinate = endCoordinate;&#xD;
    try {&#xD;
        this.dist = new GeoApiContext.Builder().apiKey(apiKey).build();&#xD;
    } catch (IllegalStateException e) {&#xD;
        LOGGER.error(&quot;The api key is not valid&quot; + e.getMessage());&#xD;
        throw new IllegalStateException(&quot;ERROR : The api key is not valid, please be sure you have a valid key&quot; + e.getMessage());&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ESz1IF_AEeqAAb4u4HLI7w" name="calculateDistanceAddress" specification="_ESsgYF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    DistanceMatrixApiRequest request = DistanceMatrixApi.newRequest(dist);&#xD;
    DistanceMatrix result = null;&#xD;
    switch(distancemode) {&#xD;
        case ADDRESS:&#xD;
            result = request.origins(startPoint).destinations(endPoint).mode(TravelMode.TRANSIT).transitModes(TransitMode.SUBWAY).language(&quot;fr-FR&quot;).await();&#xD;
            break;&#xD;
        case COORDINATE:&#xD;
            result = request.origins(startCoordinate).destinations(endCoordinate).mode(TravelMode.TRANSIT).transitModes(TransitMode.SUBWAY).language(&quot;fr-FR&quot;).await();&#xD;
            break;&#xD;
        default:&#xD;
            throw new Exception(&quot;The distance mode specified is not correct.&quot;);&#xD;
    }&#xD;
    return result.rows[0].elements[0].duration.inSeconds;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_ESOmUF_AEeqAAb4u4HLI7w" name="DistanceSubway" visibility="public" method="_ESWiIF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESTe0F_AEeqAAb4u4HLI7w" name="startPoint"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESUs8F_AEeqAAb4u4HLI7w" name="endPoint"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESV7EF_AEeqAAb4u4HLI7w" name="apiKey"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_ESZlcF_AEeqAAb4u4HLI7w" name="DistanceSubway" visibility="public" method="_ESjWcF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESfsEF_AEeqAAb4u4HLI7w" name="startCoordinate" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESg6MF_AEeqAAb4u4HLI7w" name="endCoordinate" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESiIUF_AEeqAAb4u4HLI7w" name="apiKey"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_ESsgYF_AEeqAAb4u4HLI7w" name="calculateDistanceAddress" visibility="public" method="_ESz1IF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_EStugF_AEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ESu8oF_AEeqAAb4u4HLI7w" name="distancemode"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_W5LIQGXfEeqLXLaj_4v3Nw" client="_ESBK8F_AEeqAAb4u4HLI7w" supplier="_ByP4cGVIEeq0U8CyxWHVBA"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_2NrnoKgQEeuQ07mwWsrMMA" client="_ESBK8F_AEeqAAb4u4HLI7w" supplier="_i7vXsGrAEeqG6NsufvOKcA"/>
        <packagedElement xmi:type="uml:Enumeration" xmi:id="_ByP4cGVIEeq0U8CyxWHVBA" name="DistanceMode" visibility="public">
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ByRGkGVIEeq0U8CyxWHVBA" name="ADDRESS"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ByRGkWVIEeq0U8CyxWHVBA" name="COORDINATE"/>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_S32y8F_AEeqAAb4u4HLI7w" name="gui">
        <packagedElement xmi:type="uml:Class" xmi:id="_VP_vAF_AEeqAAb4u4HLI7w" name="AskOpinionForUtility" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQCyUF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VQKHEF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(CreateApartmentGUI.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQKHEV_AEeqAAb4u4HLI7w" name="pointer" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VQKuIF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>0</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQKuIV_AEeqAAb4u4HLI7w" name="moreImportantAttributes" visibility="private" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQKuIl_AEeqAAb4u4HLI7w"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQLVMF_AEeqAAb4u4HLI7w" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQLVMV_AEeqAAb4u4HLI7w" name="lessImportantAttributes" visibility="private" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQLVMl_AEeqAAb4u4HLI7w"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQLVM1_AEeqAAb4u4HLI7w" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQNxcF_AEeqAAb4u4HLI7w" name="choix1" visibility="private" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQNxcV_AEeqAAb4u4HLI7w"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQNxcl_AEeqAAb4u4HLI7w" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQNxc1_AEeqAAb4u4HLI7w" name="choix2" visibility="private" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQOYgF_AEeqAAb4u4HLI7w"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQOYgV_AEeqAAb4u4HLI7w" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQOYgl_AEeqAAb4u4HLI7w" name="surfaceMin" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQOYg1_AEeqAAb4u4HLI7w" name="nbBedMin" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQO_kF_AEeqAAb4u4HLI7w" name="display" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQO_kV_AEeqAAb4u4HLI7w" name="shell" visibility="private" isUnique="false"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQQNsV_AEeqAAb4u4HLI7w" name="AskOpinionForUtility" specification="_VQO_kl_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.moreImportantAttributes = new ArrayList&lt;>();&#xD;
    this.lessImportantAttributes = new ArrayList&lt;>();&#xD;
    this.choix1 = new ArrayList&lt;>();&#xD;
    this.choix2 = new ArrayList&lt;>();&#xD;
    this.surfaceMin = 0d;&#xD;
    this.nbBedMin = 0d;&#xD;
    this.pointer = 0;&#xD;
    this.display = new Display();&#xD;
    this.shell = new Shell(display);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQSC4F_AEeqAAb4u4HLI7w" name="main" specification="_VQQ0wF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    AskOpinionForUtility asker = new AskOpinionForUtility();&#xD;
    ApartmentValueFunction avf = new ApartmentValueFunction();&#xD;
    asker.askQuestions();&#xD;
    avf.setFloorAreaValueFunction(new LinearValueFunction(0d, 300d));&#xD;
    avf.setNbBedroomsValueFunction(new LinearValueFunction(0d, 6d));&#xD;
    avf.setNbSleepingValueFunction(new LinearValueFunction(0d, 6d));&#xD;
    avf.setNbBathroomsValueFunction(new LinearValueFunction(0d, 6d));&#xD;
    avf.setFloorAreaTerraceValueFunction(new LinearValueFunction(0d, 100d));&#xD;
    avf.setPricePerNightValueFunction(new LinearValueFunction(0d, 80d));&#xD;
    avf.setNbMinNightValueFunction(new LinearValueFunction(0d, 6d));&#xD;
    avf = asker.adaptAnswers(avf);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.FLOOR_AREA, 0.5);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.FLOOR_AREA_TERRACE, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.NB_BATHROOMS, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.NB_BEDROOMS, 0.5);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.NB_MIN_NIGHT, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.NB_SLEEPING, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.PRICE_PER_NIGHT, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.TELE, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.TERRACE, 0);&#xD;
    avf = avf.setSubjectiveValueWeight(Criterion.WIFI, 0);&#xD;
    LOGGER.info(&quot;Begining the Layout.&quot;);&#xD;
    LayoutApartmentGUI lay = new LayoutApartmentGUI(avf);&#xD;
    lay.displayAppart();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQSp8F_AEeqAAb4u4HLI7w" name="askQuestions" specification="_VQSC4V_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    // we add the other two criteria&#xD;
    choix1.add(Criterion.TELE);&#xD;
    choix2.add(Criterion.PRICE_PER_NIGHT);&#xD;
    shell.setText(&quot;Votre avis nous intéresse ;)&quot;);&#xD;
    shell.setLayout(new GridLayout());&#xD;
    shell.setBounds(500, 500, 600, 500);&#xD;
    // for the first questions about minimum&#xD;
    final Group group = new Group(shell, SWT.NONE);&#xD;
    group.setText(&quot;Combien il vous faut pour accepter un apartement?&quot;);&#xD;
    group.setLayout(new GridLayout(2, false));&#xD;
    Label label1 = new Label(group, SWT.NONE);&#xD;
    label1.setText(&quot;Surface minimum?&quot;);&#xD;
    Text text1 = new Text(group, SWT.LEAD | SWT.BORDER);&#xD;
    text1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));&#xD;
    Label label2 = new Label(group, SWT.NONE);&#xD;
    label2.setText(&quot;Nombre de chambre minimum?&quot;);&#xD;
    Text text2 = new Text(group, SWT.LEAD | SWT.BORDER);&#xD;
    text2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));&#xD;
    // question about the importance of an element for the user&#xD;
    Group buttonGroup = new Group(shell, SWT.NONE);&#xD;
    GridLayout gridLayout = new GridLayout();&#xD;
    gridLayout.numColumns = 1;&#xD;
    buttonGroup.setLayout(gridLayout);&#xD;
    buttonGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&#xD;
    buttonGroup.setText(&quot;Qu'est ce qui a le plus d'importance pour vous&quot;);&#xD;
    // the listener when we click on finish&#xD;
    Listener finishlistener = new Listener() {&#xD;
&#xD;
        public void handleEvent(Event event) {&#xD;
            Preconditions.checkArgument(!text1.getText().equals(&quot;&quot;), &quot;il faut saisir un chiffre :(&quot;);&#xD;
            Preconditions.checkArgument(!text2.getText().equals(&quot;&quot;), &quot;il faut saisir un texte :(&quot;);&#xD;
            surfaceMin = Double.parseDouble(text1.getText());&#xD;
            nbBedMin = Double.parseDouble(text2.getText());&#xD;
            shell.close();&#xD;
            LOGGER.info(&quot;Les attributs importants sont : &quot;);&#xD;
            for (int j = 0; j &lt; moreImportantAttributes.size(); j++) {&#xD;
                LOGGER.info(moreImportantAttributes.get(j));&#xD;
            }&#xD;
            LOGGER.info(&quot;Les attribut moins importants sont : &quot;);&#xD;
            for (int j = 0; j &lt; lessImportantAttributes.size(); j++) {&#xD;
                LOGGER.info(lessImportantAttributes.get(j));&#xD;
            }&#xD;
            LOGGER.info(&quot;la valeur minmum de la surface est &quot; + surfaceMin + &quot;\nLa valeur minimum du nbre de chambre est &quot; + nbBedMin);&#xD;
        }&#xD;
    };&#xD;
    // This is a submit button, it will close the shell when the user click on&#xD;
    // Terminer&#xD;
    final Button finish = new Button(shell, SWT.PUSH);&#xD;
    finish.setText(&quot;Terminé&quot;);&#xD;
    finish.pack();&#xD;
    finish.addListener(SWT.Selection, finishlistener);&#xD;
    // buttonchoix1 and buttonchoix2 are two radio buttons, to let the user chose&#xD;
    // between two options&#xD;
    Button buttonchoix1 = new Button(buttonGroup, SWT.RADIO);&#xD;
    buttonchoix1.setText(&quot;WIFI&quot;);&#xD;
    Button buttonchoix2 = new Button(buttonGroup, SWT.RADIO);&#xD;
    buttonchoix2.setText(&quot;TERRACE&quot;);&#xD;
    // when cliquing on theses buttons&#xD;
    clickOnButton(buttonchoix1, buttonchoix2);&#xD;
    clickOnButton(buttonchoix2, buttonchoix1);&#xD;
    // open the window&#xD;
    shell.open();&#xD;
    LOGGER.info(&quot;The Shell was opened with success.&quot;);&#xD;
    while (!shell.isDisposed()) {&#xD;
        if (!display.readAndDispatch()) {&#xD;
            display.sleep();&#xD;
        }&#xD;
    }&#xD;
    display.dispose();&#xD;
    LOGGER.info(&quot;The screen was closed with success.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQVtQF_AEeqAAb4u4HLI7w" name="clickOnButton" specification="_VQTRAF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Label boo = new Label(shell, SWT.NULL);&#xD;
    pressedButton.addSelectionListener(new SelectionAdapter() {&#xD;
&#xD;
        public void widgetSelected(SelectionEvent e) {&#xD;
            Button source1 = (Button) e.widget;&#xD;
            if (source1.getSelection() &amp;&amp; !moreImportantAttributes.contains(source1.getText())) {&#xD;
                moreImportantAttributes.add(source1.getText());&#xD;
                lessImportantAttributes.add(unPressedButton.getText());&#xD;
            }&#xD;
            if (pointer == choix1.size() || pointer == choix2.size()) {&#xD;
                pressedButton.setEnabled(false);&#xD;
                unPressedButton.setEnabled(false);&#xD;
                boo.setText(&quot;\&quot;Merci pour vos choix, nous allons chercher pour vous les meilleurs apartements :) &quot;);&#xD;
                boo.pack();&#xD;
            } else {&#xD;
                pressedButton.setText(choix1.get(pointer).toString());&#xD;
                unPressedButton.setText(choix2.get(pointer).toString());&#xD;
                pointer++;&#xD;
            /**
					 * this will change the text of the buttons by choosing the content of the
					 * arrays attributImportant and attributPasImportant
					 */&#xD;
            }&#xD;
            /**
				 * in order not to be selected by default in the question in the next iteration
				 */&#xD;
            pressedButton.setSelection(false);&#xD;
            pressedButton.pack();&#xD;
            unPressedButton.pack();&#xD;
        }&#xD;
    });&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQZ-sF_AEeqAAb4u4HLI7w" name="adaptAnswers" specification="_VQXicF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    // we collect the answers on the minimums and we adapt the utility of the user&#xD;
    avf = avf.adaptBounds(Criterion.NB_BEDROOMS, nbBedMin, true);&#xD;
    avf = avf.adaptBounds(Criterion.FLOOR_AREA, surfaceMin, true);&#xD;
    // we collect the answer of the first Question and adapt the utility of the user&#xD;
    if (moreImportantAttributes.get(0).equals(&quot;WIFI&quot;) &amp;&amp; lessImportantAttributes.get(0).equals(&quot;TERRACE&quot;)) {&#xD;
        avf = avf.adaptWeight(Criterion.WIFI, Criterion.TERRACE);&#xD;
    } else {&#xD;
        avf.adaptWeight(Criterion.TERRACE, Criterion.WIFI);&#xD;
    }&#xD;
    // user&#xD;
    if (moreImportantAttributes.get(1).equals(&quot;TELE&quot;) &amp;&amp; lessImportantAttributes.get(1).equals(&quot;PRICE_PER_NIGHT low&quot;)) {&#xD;
        avf = avf.adaptWeight(Criterion.TELE, Criterion.PRICE_PER_NIGHT);&#xD;
    } else {&#xD;
        avf = avf.adaptWeight(Criterion.PRICE_PER_NIGHT, Criterion.TELE);&#xD;
    }&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_EKRpUKeYEeuzh8aae7HGjg" name="askMoreQuestions" specification="_BRwxYKWmEeuDvJpHXMpY9A"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3LOp4KegEeuzh8aae7HGjg" name="adaptAVF" specification="_I6KtMKWmEeuDvJpHXMpY9A"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQO_kl_AEeqAAb4u4HLI7w" name="AskOpinionForUtility" visibility="public" method="_VQQNsV_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQQ0wF_AEeqAAb4u4HLI7w" name="main" visibility="public" isStatic="true" method="_VQSC4F_AEeqAAb4u4HLI7w" raisedException="_VK_6QV_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQRb0F_AEeqAAb4u4HLI7w" name="args">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VQRb0V_AEeqAAb4u4HLI7w"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VQRb0l_AEeqAAb4u4HLI7w" value="*"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQSC4V_AEeqAAb4u4HLI7w" name="askQuestions" visibility="public" method="_VQSp8F_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQTRAF_AEeqAAb4u4HLI7w" name="clickOnButton" visibility="public" method="_VQVtQF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQT4EF_AEeqAAb4u4HLI7w" name="pressedButton"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQT4EV_AEeqAAb4u4HLI7w" name="unPressedButton"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQXicF_AEeqAAb4u4HLI7w" name="adaptAnswers" visibility="public" method="_VQZ-sF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQZXoF_AEeqAAb4u4HLI7w" name="avf"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_BRwxYKWmEeuDvJpHXMpY9A" name="askMoreQuestions" visibility="public" method="_EKRpUKeYEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_I6KtMKWmEeuDvJpHXMpY9A" name="adaptAVF" visibility="public" method="_3LOp4KegEeuzh8aae7HGjg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VlIj8KWmEeuDvJpHXMpY9A" name="avf" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_nZad4KWmEeuDvJpHXMpY9A" name="crits" type="__lgUEGVHEeq0U8CyxWHVBA">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SWTeMKWrEeuDvJpHXMpY9A" value="*"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_jfou8GXeEeqLXLaj_4v3Nw" client="_VP_vAF_AEeqAAb4u4HLI7w" supplier="_74b-8F_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_iHYGEGXfEeqLXLaj_4v3Nw" client="_VP_vAF_AEeqAAb4u4HLI7w" supplier="__lgUEGVHEeq0U8CyxWHVBA"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_kouBcGXfEeqLXLaj_4v3Nw" client="_VP_vAF_AEeqAAb4u4HLI7w" supplier="_72rEYF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VKBp4F_AEeqAAb4u4HLI7w" name="LayoutApartmentGUI" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKC4AF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VKC4AV_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(CreateApartmentGUI.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKFUQF_AEeqAAb4u4HLI7w" name="listApp" visibility="private" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VKGiYF_AEeqAAb4u4HLI7w"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VKGiYV_AEeqAAb4u4HLI7w" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKKz0F_AEeqAAb4u4HLI7w" name="display" visibility="private" type="_VKHJcF_AEeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VKMB8F_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Display()</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKSIkF_AEeqAAb4u4HLI7w" name="shell" visibility="private" type="_VKMpAF_AEeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VKSvoF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Shell(display)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VKXBEF_AEeqAAb4u4HLI7w" name="listShell" visibility="private" isLeaf="true" type="_VKT9wF_AEeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VKYPMF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VKeV0F_AEeqAAb4u4HLI7w" name="LayoutApartmentGUI" specification="_VKbSgF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this(new ApartmentValueFunction());&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VKrxMF_AEeqAAb4u4HLI7w" name="LayoutApartmentGUI" specification="_VKlqkF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    listApp = getListSorted(avf);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VKu0gF_AEeqAAb4u4HLI7w" name="displayAppart" specification="_VKs_UF_AEeqAAb4u4HLI7w">
            <ownedOperation xmi:type="uml:Operation" xmi:id="_jP0dAJu7EeuwG48aQQr1AA" name="displayAppart"/>
            <language>JAVA</language>
            <body>&#xD;
    addAppinListShell();&#xD;
    shell.setText(&quot;Sélection d'un appartement&quot;);&#xD;
    // create a gridLayout of 3 columns&#xD;
    GridLayout gridLayout = new GridLayout();&#xD;
    gridLayout.numColumns = 3;&#xD;
    shell.setLayout(gridLayout);&#xD;
    // create a griddata for a list of objects&#xD;
    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);&#xD;
    gridData.horizontalSpan = 2;&#xD;
    // create a list label&#xD;
    Label label = new Label(shell, SWT.NULL);&#xD;
    label.setText(&quot;Liste des appartements disponibles :&quot;);&#xD;
    label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));&#xD;
    new Label(shell, SWT.NULL);&#xD;
    // define griddata with a verticalspan : 3 rows&#xD;
    new Label(shell, SWT.NULL);&#xD;
    gridData = new GridData(GridData.FILL_BOTH);&#xD;
    gridData.verticalSpan = 3;&#xD;
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);&#xD;
    gridData.verticalSpan = 4;&#xD;
    gridData.heightHint = 400;&#xD;
    listShell.setLayoutData(gridData);&#xD;
    Group appartInfo = new Group(shell, SWT.NULL);&#xD;
    appartInfo.setText(&quot;Détail sur l'appartement sélectionné :&quot;);&#xD;
    gridLayout = new GridLayout();&#xD;
    gridLayout.numColumns = 2;&#xD;
    appartInfo.setLayout(gridLayout);&#xD;
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);&#xD;
    gridData.horizontalSpan = 2;&#xD;
    appartInfo.setLayoutData(gridData);&#xD;
    // beginning of creation of elements to display when we click on an apartement&#xD;
    Label adresse;&#xD;
    Label surface;&#xD;
    Label prix;&#xD;
    Label nbrChambres;&#xD;
    new Label(appartInfo, SWT.NULL).setText(&quot;Adresse :&quot;);&#xD;
    adresse = new Label(appartInfo, SWT.SINGLE | SWT.BORDER);&#xD;
    adresse.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&#xD;
    new Label(appartInfo, SWT.NULL).setText(&quot;Surface :&quot;);&#xD;
    surface = new Label(appartInfo, SWT.SINGLE | SWT.BORDER);&#xD;
    surface.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&#xD;
    new Label(appartInfo, SWT.NULL).setText(&quot;Prix :&quot;);&#xD;
    prix = new Label(appartInfo, SWT.SINGLE | SWT.BORDER);&#xD;
    prix.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&#xD;
    new Label(appartInfo, SWT.NULL).setText(&quot;Nombre de Chambres :&quot;);&#xD;
    nbrChambres = new Label(appartInfo, SWT.SINGLE | SWT.BORDER);&#xD;
    nbrChambres.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&#xD;
    gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);&#xD;
    gridData.horizontalSpan = 3;&#xD;
    onClick(adresse, surface, prix, nbrChambres);&#xD;
    shell.setSize(1000, 550);&#xD;
    shell.open();&#xD;
    LOGGER.info(&quot;The Shell was opened with success.&quot;);&#xD;
    while (!shell.isDisposed()) {&#xD;
        if (!display.readAndDispatch()) {&#xD;
            display.sleep();&#xD;
        }&#xD;
    }&#xD;
    LOGGER.info(&quot;The screen was closed with success.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VKzF8F_AEeqAAb4u4HLI7w" name="getListSorted" specification="_VKwCoF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ArrayList&lt;Apartment> appart = new ArrayList&lt;Apartment>();&#xD;
    for (int i = 0; i &lt; 50; ++i) {&#xD;
        ApartmentGenerator generator = new ApartmentGenerator();&#xD;
        Apartment a = generator.generateRandomApartment();&#xD;
        appart.add(a);&#xD;
    }&#xD;
    appart.sort((Apartment c, Apartment d) -> {&#xD;
        return -Double.compare(avf.getSubjectiveValue(c), avf.getSubjectiveValue(d));&#xD;
    });&#xD;
    return appart;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VK0UEF_AEeqAAb4u4HLI7w" name="addAppinListShell" specification="_VKztAF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    for (Apartment a : listApp) {&#xD;
        System.out.println(&quot;Appart : &quot; + a);&#xD;
        listShell.add(&quot;Titre: &quot; + a.getTitle() + &quot;\t&quot; + &quot; Adresse : &quot; + a.getAddress());&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VK828F_AEeqAAb4u4HLI7w" name="onClick" specification="_VK5MkF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    // the listener when we click on an apartment&#xD;
    SelectionAdapter selectApp = new SelectionAdapter() {&#xD;
&#xD;
        @Override&#xD;
        public void widgetSelected(SelectionEvent event) {&#xD;
            int[] selectedItems = listShell.getSelectionIndices();&#xD;
            for (int loopIndex = 0; loopIndex &lt; selectedItems.length; loopIndex++) {&#xD;
                adresse.setText(listApp.get(listShell.getSelectionIndex()).getAddress());&#xD;
                surface.setText(&quot; &quot; + listApp.get(listShell.getSelectionIndex()).getFloorArea());&#xD;
                prix.setText(&quot; &quot; + listApp.get(listShell.getSelectionIndex()).getPricePerNight());&#xD;
                nbrChambres.setText(&quot; &quot; + listApp.get(listShell.getSelectionIndex()).getNbBedrooms());&#xD;
            }&#xD;
        }&#xD;
    };&#xD;
    listShell.addSelectionListener(selectApp);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLHPAF_AEeqAAb4u4HLI7w" name="main" specification="_VK-FEF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentValueFunction avf = new ApartmentValueFunction();&#xD;
    avf.setFloorAreaValueFunction(new LinearValueFunction(0, 300));&#xD;
    LayoutApartmentGUI layout = new LayoutApartmentGUI(avf);&#xD;
    layout.displayAppart();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_36624KefEeuzh8aae7HGjg" name="updateAVF" specification="_zMqmwKeZEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VKbSgF_AEeqAAb4u4HLI7w" name="LayoutApartmentGUI" visibility="public" method="_VKeV0F_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VKlqkF_AEeqAAb4u4HLI7w" name="LayoutApartmentGUI" visibility="public" method="_VKrxMF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ffrGYKXmEeucsM58Yjqq-g" name="linearAVF" type="_q-Zh0J2dEeq5UMfZ1C8e7g"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VKs_UF_AEeqAAb4u4HLI7w" name="displayAppart" visibility="public" method="_VKu0gF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VKwCoF_AEeqAAb4u4HLI7w" name="getListSorted" visibility="private" isStatic="true" method="_VKzF8F_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_FfqvsKW7EeuDvJpHXMpY9A" name="linearAvf" type="_q-Zh0J2dEeq5UMfZ1C8e7g"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VKztAF_AEeqAAb4u4HLI7w" name="addAppinListShell" visibility="public" method="_VK0UEF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VK5MkF_AEeqAAb4u4HLI7w" name="onClick" visibility="private" method="_VK828F_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VK5zoF_AEeqAAb4u4HLI7w" name="adresse" type="_VK1iMF_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VK6asF_AEeqAAb4u4HLI7w" name="surface" type="_VK1iMF_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VK7BwF_AEeqAAb4u4HLI7w" name="prix" type="_VK1iMF_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VK8P4F_AEeqAAb4u4HLI7w" name="nbrChambres" type="_VK1iMF_AEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VK-FEF_AEeqAAb4u4HLI7w" name="main" visibility="public" isStatic="true" method="_VLHPAF_AEeqAAb4u4HLI7w" raisedException="_VK_6QV_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VK-sIF_AEeqAAb4u4HLI7w" name="args">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VK_TMF_AEeqAAb4u4HLI7w"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VK_6QF_AEeqAAb4u4HLI7w" value="*"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_zMqmwKeZEeuzh8aae7HGjg" name="updateAVF" visibility="public" method="_36624KefEeuzh8aae7HGjg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_biT00KeaEeuzh8aae7HGjg" name="linearAvf" type="_q-Zh0J2dEeq5UMfZ1C8e7g"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_VKHJcF_AEeqAAb4u4HLI7w" name="Display"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VKMpAF_AEeqAAb4u4HLI7w" name="Shell"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VKT9wF_AEeqAAb4u4HLI7w" name="List"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VK1iMF_AEeqAAb4u4HLI7w" name="Label"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VK_6QV_AEeqAAb4u4HLI7w" name="IllegalAccessException"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_VLK5YF_AEeqAAb4u4HLI7w" name="ModifyApartmentGUI" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_VLN8sF_AEeqAAb4u4HLI7w" general="_VLMukF_AEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VLPK0F_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VLQY8F_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ModifyApartmentGUI.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLVRcF_AEeqAAb4u4HLI7w" name="ModifyApartmentGUI" specification="_VLRnEF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    super();&#xD;
    this.file = new File(fileCompleteName);&#xD;
    this.titlePanel = &quot;Modify an apartment&quot;;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLaJ8F_AEeqAAb4u4HLI7w" name="main" specification="_VLXGoF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ModifyApartmentGUI c;&#xD;
    if (args[0] == null)&#xD;
        c = new ModifyApartmentGUI(&quot;GUITest&quot;);&#xD;
    else&#xD;
        c = new ModifyApartmentGUI(args[0]);&#xD;
    c.screenDisplay();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLcmMF_AEeqAAb4u4HLI7w" name="initializeField" specification="_VLbYEF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    getApartment();&#xD;
    if (!apart.getTitle().equals(&quot;&quot;) &amp;&amp; !apart.getTitle().isEmpty())&#xD;
        title.setText(apart.getTitle());&#xD;
    if (apart.getTele())&#xD;
        tele.setSelection(true);&#xD;
    if (apart.getTerrace())&#xD;
        terrace.setSelection(true);&#xD;
    if (apart.getWifi())&#xD;
        wifi.setSelection(true);&#xD;
    if (!apart.getAddress().equals(&quot;&quot;) &amp;&amp; !apart.getAddress().isEmpty())&#xD;
        address.setText(apart.getAddress());&#xD;
    if (!apart.getDescription().equals(&quot;&quot;) &amp;&amp; !apart.getDescription().isEmpty())&#xD;
        description.setText(apart.getDescription());&#xD;
    if (apart.getFloorArea() != 0)&#xD;
        floorArea.setText(Double.toString(apart.getFloorArea()));&#xD;
    if (apart.getFloorAreaTerrace() != 0) {&#xD;
        floorAreaTerrace.setText(Double.toString(apart.getFloorAreaTerrace()));&#xD;
        floorAreaTerrace.setEditable(true);&#xD;
    }&#xD;
    if (apart.getNbBathrooms() != 0)&#xD;
        nbBathrooms.setText(Integer.toString(apart.getNbBathrooms()));&#xD;
    if (apart.getNbBedrooms() != 0)&#xD;
        nbBedrooms.setText(Integer.toString(apart.getNbBedrooms()));&#xD;
    if (apart.getNbMinNight() != 0)&#xD;
        nbMinNight.setText(Integer.toString(apart.getNbMinNight()));&#xD;
    if (apart.getNbSleeping() != 0)&#xD;
        nbSleeping.setText(Integer.toString(apart.getNbSleeping()));&#xD;
    if (apart.getPricePerNight() != 0)&#xD;
        pricePerNight.setText(Double.toString(apart.getPricePerNight()));&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLd0UF_AEeqAAb4u4HLI7w" name="getApartment" specification="_VLdNQF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    try (InputStream i = Files.asByteSource(file).openStream()) {&#xD;
        ReadApartmentsXMLFormat f = new ReadApartmentsXMLFormat();&#xD;
        apart = f.readApartment(i);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VLhesF_AEeqAAb4u4HLI7w" name="screenDisplay" specification="_VLfpgF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    try (InputStream f = DisplayIcon.class.getResourceAsStream(&quot;logo.png&quot;)) {&#xD;
        LOGGER.info(&quot;The logo has been loaded with success.&quot;);&#xD;
        FillLayout r = new FillLayout();&#xD;
        r.type = SWT.VERTICAL;&#xD;
        shell.setLayout(r);&#xD;
        Image i = new Image(display, f);&#xD;
        shell.setImage(i);&#xD;
        shell.setText(&quot;Apartments&quot;);&#xD;
        createPageTitle();&#xD;
        createForm();&#xD;
        shell.pack();&#xD;
        shell.setMinimumSize(600, 700);&#xD;
        shell.setSize(600, 700);&#xD;
        shell.open();&#xD;
        LOGGER.info(&quot;The Shell was opened with success.&quot;);&#xD;
        initializeField();&#xD;
        loadMessage(MessageInfo.LOAD, &quot;Everything is loaded !&quot;);&#xD;
        while (!shell.isDisposed()) {&#xD;
            if (!display.readAndDispatch())&#xD;
                display.sleep();&#xD;
        }&#xD;
        i.dispose();&#xD;
        display.dispose();&#xD;
        LOGGER.info(&quot;The screen was closed with success.&quot;);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VLRnEF_AEeqAAb4u4HLI7w" name="ModifyApartmentGUI" visibility="public" method="_VLVRcF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VLUqYF_AEeqAAb4u4HLI7w" name="fileCompleteName"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VLXGoF_AEeqAAb4u4HLI7w" name="main" visibility="public" isStatic="true" method="_VLaJ8F_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VLYUwF_AEeqAAb4u4HLI7w" name="args"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VLbYEF_AEeqAAb4u4HLI7w" name="initializeField" visibility="private" method="_VLcmMF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VLdNQF_AEeqAAb4u4HLI7w" name="getApartment" visibility="private" method="_VLd0UF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VLfpgF_AEeqAAb4u4HLI7w" name="screenDisplay" visibility="protected" method="_VLhesF_AEeqAAb4u4HLI7w"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_VLMukF_AEeqAAb4u4HLI7w" name="FormApartmentGUI" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VLx9YF_AEeqAAb4u4HLI7w" name="display" visibility="protected" isStatic="true" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VLzLgF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Display()</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VL4rEF_AEeqAAb4u4HLI7w" name="shell" visibility="protected" isStatic="true" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VL4rEV_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Shell(display)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VL8VcF_AEeqAAb4u4HLI7w" name="title" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VL9jkF_AEeqAAb4u4HLI7w" name="address" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VL-xsF_AEeqAAb4u4HLI7w" name="floorArea" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VL__0F_AEeqAAb4u4HLI7w" name="nbBedrooms" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMBN8F_AEeqAAb4u4HLI7w" name="nbSleeping" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMCcEF_AEeqAAb4u4HLI7w" name="nbBathrooms" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMGGcF_AEeqAAb4u4HLI7w" name="terrace" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMHUkF_AEeqAAb4u4HLI7w" name="floorAreaTerrace" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMIisF_AEeqAAb4u4HLI7w" name="pricePerNight" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMKX4F_AEeqAAb4u4HLI7w" name="nbMinNight" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMLmAF_AEeqAAb4u4HLI7w" name="description" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMNbMF_AEeqAAb4u4HLI7w" name="wifi" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMOpUF_AEeqAAb4u4HLI7w" name="tele" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMS6wF_AEeqAAb4u4HLI7w" name="file" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMXMMF_AEeqAAb4u4HLI7w" name="information" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMZBYF_AEeqAAb4u4HLI7w" name="apart" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMeg8F_AEeqAAb4u4HLI7w" name="okColor" visibility="public" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VMfIAF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Color(display, 119, 197, 110)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMfvEF_AEeqAAb4u4HLI7w" name="alertColor" visibility="public" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VMg9MF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Color(display, 255, 200, 200)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMiLUF_AEeqAAb4u4HLI7w" name="normalColor" visibility="public" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VMjZcF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>new Color(display, 255, 255, 255)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMknkF_AEeqAAb4u4HLI7w" name="titlePanel" visibility="protected" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VMl1sF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VMnq4F_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(FormApartmentGUI.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VMo5AF_AEeqAAb4u4HLI7w" name="createForm" specification="_VMoR8F_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    title = createFormFieldComposite(&quot;Title of the apartment*: &quot;);&#xD;
    address = createFormFieldComposite(&quot;Address*: &quot;);&#xD;
    floorArea = createFormFieldComposite(&quot;Floor Area*:&quot;);&#xD;
    nbBedrooms = createFormFieldComposite(&quot;Number of bedrooms: &quot;);&#xD;
    nbSleeping = createFormFieldComposite(&quot;Sleeping capacity: &quot;);&#xD;
    nbBathrooms = createFormFieldComposite(&quot;Number of bathrooms: &quot;);&#xD;
    terrace = createCheckboxComposite(&quot;Terrace: &quot;);&#xD;
    floorAreaTerrace = createFormFieldComposite(&quot;Floor area terrace: &quot;);&#xD;
    pricePerNight = createFormFieldComposite(&quot;Price per night: &quot;);&#xD;
    nbMinNight = createFormFieldComposite(&quot;Minimum nights to stay: &quot;);&#xD;
    wifi = createCheckboxComposite(&quot;WiFi: &quot;);&#xD;
    tele = createCheckboxComposite(&quot;Television: &quot;);&#xD;
    description = createFormFieldComposite(&quot;Description:&quot;);&#xD;
    information = createCompositeInformation();&#xD;
    terrace.addListener(SWT.Selection, new Listener() {&#xD;
&#xD;
        @Override&#xD;
        public void handleEvent(Event e) {&#xD;
            Button b = (Button) e.widget;&#xD;
            if (b.getSelection()) {&#xD;
                floorAreaTerrace.setEditable(true);&#xD;
                floorAreaTerrace.setVisible(true);&#xD;
            } else {&#xD;
                floorAreaTerrace.setEditable(false);&#xD;
                floorAreaTerrace.setVisible(false);&#xD;
            }&#xD;
            informationToFile();&#xD;
        }&#xD;
    });&#xD;
    validationField();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VMrVQF_AEeqAAb4u4HLI7w" name="validationField" specification="_VMqHIF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Listener textVerification = new Listener() {&#xD;
&#xD;
        @Override&#xD;
        public void handleEvent(Event e) {&#xD;
            Text t = (Text) e.widget;&#xD;
            if (!t.getText().isEmpty()) {&#xD;
                t.setBackground(new Color(display, 255, 255, 255));&#xD;
            } else {&#xD;
                Label l = (Label) t.getParent().getChildren()[0];&#xD;
                if (l.getText().contains(&quot;*&quot;))&#xD;
                    t.setBackground(new Color(display, 255, 200, 200));&#xD;
            }&#xD;
            informationToFile();&#xD;
        }&#xD;
    };&#xD;
    Listener selectionListener = new Listener() {&#xD;
&#xD;
        @Override&#xD;
        public void handleEvent(Event arg0) {&#xD;
            informationToFile();&#xD;
        }&#xD;
    };&#xD;
    title.addListener(SWT.KeyUp, textVerification);&#xD;
    address.addListener(SWT.KeyUp, textVerification);&#xD;
    floorArea.addListener(SWT.KeyUp, textVerification);&#xD;
    floorAreaTerrace.addListener(SWT.KeyUp, textVerification);&#xD;
    nbBedrooms.addListener(SWT.KeyUp, textVerification);&#xD;
    nbSleeping.addListener(SWT.KeyUp, textVerification);&#xD;
    nbBathrooms.addListener(SWT.KeyUp, textVerification);&#xD;
    pricePerNight.addListener(SWT.KeyUp, textVerification);&#xD;
    nbMinNight.addListener(SWT.KeyUp, textVerification);&#xD;
    wifi.addListener(SWT.Selection, selectionListener);&#xD;
    tele.addListener(SWT.Selection, selectionListener);&#xD;
    description.addListener(SWT.KeyUp, textVerification);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VMtKcF_AEeqAAb4u4HLI7w" name="informationToFile" specification="_VMsjYF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    boolean invalid = false;&#xD;
    if (verificationText(floorArea, TypeButtonText.DOUBLE) &amp;&amp; verificationText(floorArea, TypeButtonText.REQUIRED) &amp;&amp; verificationText(title, TypeButtonText.REQUIRED) &amp;&amp; verificationText(address, TypeButtonText.REQUIRED)) {&#xD;
        apart = new Apartment(Double.parseDouble(floorArea.getText()), address.getText(), title.getText());&#xD;
        apart.setTele(tele.getSelection());&#xD;
        apart.setWifi(wifi.getSelection());&#xD;
        apart.setDescription(description.getText());&#xD;
        if ((verificationText(nbBedrooms, TypeButtonText.INT) == false &amp;&amp; nbBedrooms.getText() != &quot;&quot;) || (verificationText(nbMinNight, TypeButtonText.INT) == false &amp;&amp; nbMinNight.getText() != &quot;&quot;) || (verificationText(nbSleeping, TypeButtonText.INT) == false &amp;&amp; nbSleeping.getText() != &quot;&quot;) || (verificationText(nbBathrooms, TypeButtonText.INT) == false &amp;&amp; nbBathrooms.getText() != &quot;&quot;) || (verificationText(pricePerNight, TypeButtonText.DOUBLE) == false &amp;&amp; pricePerNight.getText() != &quot;&quot;))&#xD;
            invalid = true;&#xD;
        if (verificationText(nbBedrooms, TypeButtonText.INT))&#xD;
            apart.setNbBedrooms(Integer.parseInt(nbBedrooms.getText()));&#xD;
        if (verificationText(nbMinNight, TypeButtonText.INT))&#xD;
            apart.setNbMinNight(Integer.parseInt(nbMinNight.getText()));&#xD;
        if (verificationText(nbSleeping, TypeButtonText.INT))&#xD;
            apart.setNbSleeping(Integer.parseInt(nbSleeping.getText()));&#xD;
        if (verificationText(nbBathrooms, TypeButtonText.INT))&#xD;
            apart.setNbBathrooms(Integer.parseInt(nbBathrooms.getText()));&#xD;
        if (verificationText(pricePerNight, TypeButtonText.DOUBLE))&#xD;
            apart.setPricePerNight(Double.parseDouble(pricePerNight.getText()));&#xD;
        if (terrace.getSelection() &amp;&amp; verificationText(floorAreaTerrace, TypeButtonText.DOUBLE)) {&#xD;
            apart.setTerrace(terrace.getSelection());&#xD;
            apart.setFloorAreaTerrace(Double.parseDouble(floorAreaTerrace.getText()));&#xD;
        } else {&#xD;
            apart.setTerrace(false);&#xD;
            if (terrace.getSelection()) {&#xD;
                loadMessage(MessageInfo.ERROR, &quot;Floor Area Terrace should not be empty !&quot;);&#xD;
                invalid = true;&#xD;
            }&#xD;
        }&#xD;
        if (!invalid) {&#xD;
            write(apart);&#xD;
            loadMessage(MessageInfo.SAVED, &quot;Apartment have been saved !&quot;);&#xD;
            System.out.println(&quot;saved&quot;);&#xD;
        }&#xD;
    } else {&#xD;
        loadMessage(MessageInfo.REQUIRED, &quot;Title, Address and Floor Area are required&quot;);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VMzREF_AEeqAAb4u4HLI7w" name="loadMessage" specification="_VMwNwF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Color color = alertColor;&#xD;
    switch(type) {&#xD;
        case REQUIRED:&#xD;
            color = alertColor;&#xD;
            break;&#xD;
        case SAVED:&#xD;
            color = okColor;&#xD;
            break;&#xD;
        case LOAD:&#xD;
            color = okColor;&#xD;
            break;&#xD;
        case ERROR:&#xD;
            color = alertColor;&#xD;
            break;&#xD;
        default:&#xD;
            break;&#xD;
    }&#xD;
    information.setBackground(color);&#xD;
    Label l = (Label) information.getChildren()[0];&#xD;
    l.setBackground(color);&#xD;
    l.setText(message);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VM4woF_AEeqAAb4u4HLI7w" name="createFormFieldComposite" specification="_VM1GQF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Composite c = new Composite(shell, SWT.PUSH);&#xD;
    GridLayout f = new GridLayout(2, false);&#xD;
    c.setLayout(f);&#xD;
    GridData a = new GridData(SWT.FILL, SWT.NONE, true, false);&#xD;
    a.minimumWidth = SWT.FILL;&#xD;
    a.horizontalAlignment = SWT.NONE;&#xD;
    a.widthHint = 200;&#xD;
    Label lb = new Label(c, SWT.FILL);&#xD;
    lb.setText(label);&#xD;
    lb.setLayoutData(a);&#xD;
    Text t = new Text(c, SWT.FILL);&#xD;
    t.setText(&quot;&quot;);&#xD;
    t.setLayoutData(a);&#xD;
    if (label.equalsIgnoreCase(&quot;Floor area terrace: &quot;))&#xD;
        t.setEditable(false);&#xD;
    if (label.contains(&quot;*&quot;) &amp;&amp; (t.getText().equals(&quot; &quot;) || !t.getText().isEmpty()))&#xD;
        t.setBackground(alertColor);&#xD;
    shell.pack();&#xD;
    LOGGER.info(&quot;The Composite &quot; + label + &quot; was created.&quot;);&#xD;
    return t;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VM-QMF_AEeqAAb4u4HLI7w" name="verificationText" specification="_VM6l0F_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    switch(type) {&#xD;
        case INT:&#xD;
            if (!text.getText().equals(&quot;&quot;)) {&#xD;
                try {&#xD;
                    Integer.parseInt(text.getText());&#xD;
                    text.setBackground(normalColor);&#xD;
                    return true;&#xD;
                } catch (NumberFormatException e) {&#xD;
                    text.setText(&quot;&quot;);&#xD;
                    text.setBackground(alertColor);&#xD;
                    LOGGER.error(&quot;The argument set is not valid &quot; + e.getMessage());&#xD;
                }&#xD;
            }&#xD;
            break;&#xD;
        case DOUBLE:&#xD;
            if (!text.getText().equals(&quot;&quot;)) {&#xD;
                try {&#xD;
                    Double.parseDouble(text.getText());&#xD;
                    text.setBackground(normalColor);&#xD;
                    return true;&#xD;
                } catch (NumberFormatException e) {&#xD;
                    text.setText(&quot;&quot;);&#xD;
                    Label l = (Label) text.getParent().getChildren()[0];&#xD;
                    loadMessage(MessageInfo.ERROR, &quot;Error : &quot; + l.getText().substring(0, l.getText().length() - 2) + &quot;have not a valid format&quot;);&#xD;
                    LOGGER.error(&quot;The argument set is not valid &quot; + e.getMessage());&#xD;
                }&#xD;
            }&#xD;
            break;&#xD;
        case REQUIRED:&#xD;
            if (!text.getText().isEmpty()) {&#xD;
                text.setBackground(normalColor);&#xD;
                return true;&#xD;
            }&#xD;
            text.setBackground(alertColor);&#xD;
            break;&#xD;
        default:&#xD;
            break;&#xD;
    }&#xD;
    return false;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VNChoF_AEeqAAb4u4HLI7w" name="createCheckboxComposite" specification="_VNAFYF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Composite c = new Composite(shell, SWT.PUSH);&#xD;
    GridLayout f = new GridLayout(2, false);&#xD;
    c.setLayout(f);&#xD;
    GridData a = new GridData(SWT.FILL, SWT.NONE, true, false);&#xD;
    a.minimumWidth = SWT.FILL;&#xD;
    a.horizontalAlignment = SWT.NONE;&#xD;
    a.widthHint = 200;&#xD;
    Label lb = new Label(c, SWT.FILL);&#xD;
    lb.setText(label);&#xD;
    lb.setLayoutData(a);&#xD;
    Button t = new Button(c, SWT.CHECK);&#xD;
    t.setText(&quot;&quot;);&#xD;
    t.setLayoutData(a);&#xD;
    shell.pack();&#xD;
    LOGGER.info(&quot;The Composite &quot; + label + &quot; was created.&quot;);&#xD;
    return t;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VNGzEF_AEeqAAb4u4HLI7w" name="write" specification="_VNEW0F_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    XMLProperties xmlFile = new XMLProperties();&#xD;
    try (FileOutputStream s = new FileOutputStream(file.getAbsolutePath())) {&#xD;
        xmlFile.toXML(a, s);&#xD;
    } catch (Exception e) {&#xD;
        MessageDialog.openError(shell, &quot;Error&quot;, &quot;Insertion Problem in the XML File\n\nTry to restart the app&quot;);&#xD;
        LOGGER.error(&quot;Error while inserting data into XML File&quot; + e.getMessage());&#xD;
        throw new IllegalStateException(e);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VNIoQF_AEeqAAb4u4HLI7w" name="createPageTitle" specification="_VNIBMF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Composite compoForTitle = new Composite(shell, SWT.NONE);&#xD;
    GridLayout gl = new GridLayout(1, true);&#xD;
    compoForTitle.setLayout(gl);&#xD;
    Label titleLb = new Label(compoForTitle, SWT.FILL | SWT.NONE);&#xD;
    titleLb.setText(titlePanel);&#xD;
    GridData a = new GridData(SWT.FILL, SWT.NONE, true, false);&#xD;
    a.minimumWidth = SWT.FILL;&#xD;
    a.horizontalAlignment = SWT.NONE;&#xD;
    a.widthHint = 200;&#xD;
    titleLb.setLayoutData(a);&#xD;
    LOGGER.info(&quot;The Composite of the header was created.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VNLrkF_AEeqAAb4u4HLI7w" name="createCompositeInformation" specification="_VNJ2YF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Composite compo = new Composite(shell, SWT.NONE);&#xD;
    GridLayout f = new GridLayout(1, false);&#xD;
    compo.setLayout(f);&#xD;
    compo.setSize(200, 200);&#xD;
    compo.setBackground(okColor);&#xD;
    GridData a = new GridData(SWT.FILL, SWT.NONE, true, false);&#xD;
    a.minimumWidth = SWT.FILL;&#xD;
    a.horizontalAlignment = SWT.NONE;&#xD;
    a.widthHint = 300;&#xD;
    Label lb = new Label(compo, SWT.FILL);&#xD;
    lb.setText(&quot;Everything is loaded !&quot;);&#xD;
    lb.setBackground(okColor);&#xD;
    lb.setLayoutData(a);&#xD;
    shell.pack();&#xD;
    return compo;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VMoR8F_AEeqAAb4u4HLI7w" name="createForm" visibility="protected" method="_VMo5AF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VMqHIF_AEeqAAb4u4HLI7w" name="validationField" visibility="private" method="_VMrVQF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VMsjYF_AEeqAAb4u4HLI7w" name="informationToFile" visibility="protected" method="_VMtKcF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VMwNwF_AEeqAAb4u4HLI7w" name="loadMessage" visibility="protected" method="_VMzREF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VMxb4F_AEeqAAb4u4HLI7w" name="type" type="_VTRsgF_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VMyqAF_AEeqAAb4u4HLI7w" name="message"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VM1GQF_AEeqAAb4u4HLI7w" name="createFormFieldComposite" visibility="private" method="_VM4woF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VM1tUF_AEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VM27cF_AEeqAAb4u4HLI7w" name="label"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VM6l0F_AEeqAAb4u4HLI7w" name="verificationText" visibility="private" method="_VM-QMF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VM7M4F_AEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VM9CEF_AEeqAAb4u4HLI7w" name="text"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VM9pIF_AEeqAAb4u4HLI7w" name="type" type="_VPupQF_AEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VNAFYF_AEeqAAb4u4HLI7w" name="createCheckboxComposite" visibility="private" method="_VNChoF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VNAscF_AEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VNB6kF_AEeqAAb4u4HLI7w" name="label"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VNEW0F_AEeqAAb4u4HLI7w" name="write" visibility="private" method="_VNGzEF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VNE94F_AEeqAAb4u4HLI7w" name="a"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VNIBMF_AEeqAAb4u4HLI7w" name="createPageTitle" visibility="protected" method="_VNIoQF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VNJ2YF_AEeqAAb4u4HLI7w" name="createCompositeInformation" visibility="private" method="_VNLrkF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VNLEgF_AEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Enumeration" xmi:id="_VTRsgF_AEeqAAb4u4HLI7w" name="MessageInfo" visibility="public">
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VTThsF_AEeqAAb4u4HLI7w" name="SAVED"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VTUIwF_AEeqAAb4u4HLI7w" name="ERROR"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VTUv0F_AEeqAAb4u4HLI7w" name="REQUIRED"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VTUv0V_AEeqAAb4u4HLI7w" name="LOAD"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Enumeration" xmi:id="_VPupQF_AEeqAAb4u4HLI7w" name="TypeButtonText" visibility="public">
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VPy6sF_AEeqAAb4u4HLI7w" name="INT"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VP0v4F_AEeqAAb4u4HLI7w" name="DOUBLE"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VP1-AF_AEeqAAb4u4HLI7w" name="REQUIRED"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_VQfeQF_AEeqAAb4u4HLI7w" name="CreateApartmentGUI" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_VQhTcF_AEeqAAb4u4HLI7w" general="_VLMukF_AEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_VQkWwF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_VQnaEF_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(CreateApartmentGUI.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VQ01cF_AEeqAAb4u4HLI7w" name="CreateApartmentGUI" specification="_VQqdYF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    super();&#xD;
    this.file = new File(fileCompleteName);&#xD;
    this.titlePanel = &quot;Create an Apartment&quot;;&#xD;
    LOGGER.info(&quot;The GUI was initialized with success.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VRCQ0F_AEeqAAb4u4HLI7w" name="main" specification="_VQ6VAF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    CreateApartmentGUI c;&#xD;
    if (args[0] == null)&#xD;
        c = new CreateApartmentGUI(&quot;GUITest&quot;);&#xD;
    else&#xD;
        c = new CreateApartmentGUI(args[0]);&#xD;
    c.screenDisplay();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_VRFUIF_AEeqAAb4u4HLI7w" name="screenDisplay" specification="_VRDe8F_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    try (InputStream f = DisplayIcon.class.getResourceAsStream(&quot;logo.png&quot;)) {&#xD;
        LOGGER.info(&quot;The logo has been loaded with success.&quot;);&#xD;
        FillLayout r = new FillLayout();&#xD;
        r.type = SWT.VERTICAL;&#xD;
        shell.setLayout(r);&#xD;
        Image i = new Image(display, f);&#xD;
        shell.setImage(i);&#xD;
        shell.setText(&quot;Apartments&quot;);&#xD;
        createPageTitle();&#xD;
        createForm();&#xD;
        shell.pack();&#xD;
        shell.setMinimumSize(600, 700);&#xD;
        shell.setSize(600, 700);&#xD;
        shell.open();&#xD;
        LOGGER.info(&quot;The Shell was opened with success.&quot;);&#xD;
        while (!shell.isDisposed()) {&#xD;
            if (!display.readAndDispatch())&#xD;
                display.sleep();&#xD;
        }&#xD;
        i.dispose();&#xD;
        display.dispose();&#xD;
        LOGGER.info(&quot;The screen was closed with success.&quot;);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQqdYF_AEeqAAb4u4HLI7w" name="CreateApartmentGUI" visibility="public" method="_VQ01cF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQyZMF_AEeqAAb4u4HLI7w" name="fileCompleteName"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VQ6VAF_AEeqAAb4u4HLI7w" name="main" visibility="public" isStatic="true" method="_VRCQ0F_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_VQ-mcF_AEeqAAb4u4HLI7w" name="args"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_VRDe8F_AEeqAAb4u4HLI7w" name="screenDisplay" visibility="protected" method="_VRFUIF_AEeqAAb4u4HLI7w"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_frpf8GXeEeqLXLaj_4v3Nw" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_74b-8F_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_si-XsGXeEeqLXLaj_4v3Nw" client="_VLK5YF_AEeqAAb4u4HLI7w" supplier="_VTRsgF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_vUI3wGXeEeqLXLaj_4v3Nw" client="_VLMukF_AEeqAAb4u4HLI7w" supplier="_VTRsgF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_wEJYYGXeEeqLXLaj_4v3Nw" client="_VLMukF_AEeqAAb4u4HLI7w" supplier="_VPupQF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_y6FqwGXeEeqLXLaj_4v3Nw" client="_VQfeQF_AEeqAAb4u4HLI7w" supplier="_ck78QF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_z2_X4GXeEeqLXLaj_4v3Nw" client="_VLK5YF_AEeqAAb4u4HLI7w" supplier="_ck78QF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_3SZHwGXeEeqLXLaj_4v3Nw" client="_VLK5YF_AEeqAAb4u4HLI7w" supplier="_4qWHwF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_6ZTOUGXeEeqLXLaj_4v3Nw" client="_VLMukF_AEeqAAb4u4HLI7w" supplier="_G6iP4F_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_msGOcGXfEeqLXLaj_4v3Nw" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_72rEYF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_pVlZMGXfEeqLXLaj_4v3Nw" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_VP_vAF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_7dzmkHKHEeq1kKPrsPWCsQ" client="_VLMukF_AEeqAAb4u4HLI7w" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_9M8B4HKHEeq1kKPrsPWCsQ" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_2rQboJjpEeqYCK4Btw7kWQ" client="_-FOsoJU1Eeqfq4Pvb_wd9Q" supplier="_-FOsoJU1Eeqfq4Pvb_wd9Q"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_9yrKQJjpEeqYCK4Btw7kWQ" client="_S32y8F_AEeqAAb4u4HLI7w" supplier="_1bkeoF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_IpdtoJjqEeqYCK4Btw7kWQ" client="_S32y8F_AEeqAAb4u4HLI7w" supplier="_A3YaoF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_hRfMQJjqEeqYCK4Btw7kWQ" client="_S32y8F_AEeqAAb4u4HLI7w" supplier="_1QqroF-_EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_uoqBsJjqEeqYCK4Btw7kWQ" client="_S32y8F_AEeqAAb4u4HLI7w" supplier="_d2M6YF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_cZn1sJj7EeqYP-aD6j0wRg" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_UBdi0Jj5EeqYP-aD6j0wRg"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_d3TUoJj7EeqYP-aD6j0wRg" client="_VLMukF_AEeqAAb4u4HLI7w" supplier="_UBdi0Jj5EeqYP-aD6j0wRg"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_Zds_YJp1EeqmHpvW7B5p3g" client="_VP_vAF_AEeqAAb4u4HLI7w" supplier="_LbxAkJpzEeqmHpvW7B5p3g"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="__uW24Jp1EeqmHpvW7B5p3g" client="_VP_vAF_AEeqAAb4u4HLI7w" supplier="_mJBTIIY3Eeqw9PFqD2CRLA"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_BBsxkKWlEeuDvJpHXMpY9A" name="Orchestrator" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_kOLJkKWpEeuDvJpHXMpY9A" visibility="public" type="_BBsxkKWlEeuDvJpHXMpY9A"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MBz3MKehEeuzh8aae7HGjg" name="moreQuestionsClick" specification="_WvmU0KbLEeut96yX7t5ziQ"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_NZjtQKehEeuzh8aae7HGjg" name="addAnswerClick" specification="_lf-okKd-EeuHaazZG4EP4A"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_OgF3gKehEeuzh8aae7HGjg" name="showAOFU" specification="_KRzD8KWlEeuDvJpHXMpY9A"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_P60wIKehEeuzh8aae7HGjg" name="showLAG" specification="_V_AR8KWlEeuDvJpHXMpY9A"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RS7LgKehEeuzh8aae7HGjg" name="chooseApartmentClick" specification="_QZeiYKeeEeuzh8aae7HGjg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__fnIEKwYEeuurZpZ_MDBKw" name="finishButtonClick" specification="_7LCUgKwYEeuurZpZ_MDBKw"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_KRzD8KWlEeuDvJpHXMpY9A" name="showAOFU" visibility="public" method="_OgF3gKehEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_V_AR8KWlEeuDvJpHXMpY9A" name="showLAG" visibility="public" method="_P60wIKehEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_WvmU0KbLEeut96yX7t5ziQ" name="moreQuestionsClick" visibility="public" method="_MBz3MKehEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_lf-okKd-EeuHaazZG4EP4A" name="addAnswerClick" visibility="public" method="_NZjtQKehEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_QZeiYKeeEeuzh8aae7HGjg" name="chooseApartmentClick" visibility="public" method="_RS7LgKehEeuzh8aae7HGjg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_7LCUgKwYEeuurZpZ_MDBKw" name="finishButtonClick" visibility="public" method="__fnIEKwYEeuurZpZ_MDBKw"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_AvDEALyeEeuvu5ayhp9Lzg" client="_VKBp4F_AEeqAAb4u4HLI7w" supplier="_3ns3QLyYEeuvu5ayhp9Lzg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_bL8JAF_AEeqAAb4u4HLI7w" name="iconDisplay">
        <packagedElement xmi:type="uml:Class" xmi:id="_ck78QF_AEeqAAb4u4HLI7w" name="DisplayIcon" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_ck8jUF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_ck8jUV_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(DisplayIcon.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ck-_kF_AEeqAAb4u4HLI7w" name="main" specification="_ck9xcF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    try (InputStream f = DisplayIcon.class.getResourceAsStream(&quot;logo.png&quot;)) {&#xD;
        Display d = new Display();&#xD;
        Shell s = new Shell(d);&#xD;
        LOGGER.info(&quot;The shell has been initialized&quot;);&#xD;
        s.setSize(500, 500);&#xD;
        Image i = new Image(d, f);&#xD;
        s.setImage(i);&#xD;
        s.setText(&quot;Apartments&quot;);&#xD;
        s.open();&#xD;
        LOGGER.info(&quot;The image is perfectly loaded&quot;);&#xD;
        while (!s.isDisposed()) {&#xD;
            if (!d.readAndDispatch())&#xD;
                d.sleep();&#xD;
        }&#xD;
        i.dispose();&#xD;
        s.dispose();&#xD;
        d.dispose();&#xD;
    } catch (IOException e) {&#xD;
        LOGGER.info(&quot;Fail to open the stream or the stream has been interrupted&quot;);&#xD;
        throw e;&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_ck9xcF_AEeqAAb4u4HLI7w" name="main" visibility="public" isStatic="true" method="_ck-_kF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ck9xcV_AEeqAAb4u4HLI7w" name="args">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ck-YgF_AEeqAAb4u4HLI7w"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ck-YgV_AEeqAAb4u4HLI7w" value="*"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_m5QrwF_AEeqAAb4u4HLI7w" name="localize">
        <packagedElement xmi:type="uml:Class" xmi:id="_tRpKIF_AEeqAAb4u4HLI7w" name="Localizer" visibility="public">
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tRziMF_AEeqAAb4u4HLI7w" name="getGeometryLocation" specification="_tRpxMF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    GeoApiContext context = new GeoApiContext.Builder().apiKey(apiKey).build();&#xD;
    GeocodingResult[] res = GeocodingApi.newRequest(context).address(address).await();&#xD;
    return res[0].geometry.location;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_tRpxMF_AEeqAAb4u4HLI7w" name="getGeometryLocation" visibility="public" isStatic="true" method="_tRziMF_AEeqAAb4u4HLI7w" raisedException="_tRrmYl_AEeqAAb4u4HLI7w _tRv30F_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_tRqYQF_AEeqAAb4u4HLI7w" type="_ESE1Ul_AEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_tRq_UF_AEeqAAb4u4HLI7w" name="address"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_tRrmYF_AEeqAAb4u4HLI7w" name="apiKey"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_tRv30F_AEeqAAb4u4HLI7w" name="InterruptedException"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_1bkeoF_AEeqAAb4u4HLI7w" name="readapartments">
        <packagedElement xmi:type="uml:Class" xmi:id="_4qWHwF_AEeqAAb4u4HLI7w" name="ReadApartmentsXMLFormat" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_4qZLEF_AEeqAAb4u4HLI7w" name="prop" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_4qbAQF_AEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_4qbAQV_AEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ReadApartmentsXMLFormat.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4qc1cF_AEeqAAb4u4HLI7w" name="ReadApartmentsXMLFormat" specification="_4qbAQl_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    prop = new Properties();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4qnNgF_AEeqAAb4u4HLI7w" name="readApartment" specification="_4qeDkF_AEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    LOGGER.info(&quot;Enter readApartment method&quot;);&#xD;
    prop.loadFromXML(input);&#xD;
    LOGGER.info(&quot;XML Files loaded with success&quot;);&#xD;
    if (prop.containsKey(&quot;floorArea&quot;) == false || prop.containsKey(&quot;address&quot;) == false || prop.containsKey(&quot;title&quot;) == false) {&#xD;
        LOGGER.error(&quot;Impossible to create an apartment if a floor Area, a title or an address is missing.&quot;);&#xD;
        throw new InvalidPropertiesFormatException(&quot;Capital information left for the creation of an Apartment Object&quot;);&#xD;
    }&#xD;
    Apartment apartment = new Apartment(Double.parseDouble(prop.getProperty(&quot;floorArea&quot;)), prop.getProperty(&quot;address&quot;), prop.getProperty(&quot;title&quot;));&#xD;
    if (prop.containsKey(&quot;description&quot;))&#xD;
        apartment.setDescription(prop.getProperty(&quot;description&quot;));&#xD;
    if (prop.containsKey(&quot;nbBathrooms&quot;))&#xD;
        apartment.setNbBathrooms(Integer.parseInt(prop.getProperty(&quot;nbBathrooms&quot;)));&#xD;
    if (prop.containsKey(&quot;terrace&quot;))&#xD;
        apartment.setTerrace(Boolean.valueOf(prop.getProperty(&quot;terrace&quot;)));&#xD;
    if (prop.containsKey(&quot;floorAreaTerrace&quot;))&#xD;
        apartment.setFloorAreaTerrace(Double.parseDouble(prop.getProperty(&quot;floorAreaTerrace&quot;)));&#xD;
    if (prop.containsKey(&quot;wifi&quot;))&#xD;
        apartment.setWifi(Boolean.valueOf(prop.getProperty(&quot;wifi&quot;)));&#xD;
    if (prop.containsKey(&quot;tele&quot;))&#xD;
        apartment.setTele(Boolean.valueOf(prop.getProperty(&quot;tele&quot;)));&#xD;
    if (prop.containsKey(&quot;nbSleeping&quot;))&#xD;
        apartment.setNbSleeping(Integer.parseInt(prop.getProperty(&quot;nbSleeping&quot;)));&#xD;
    if (prop.containsKey(&quot;nbBedrooms&quot;))&#xD;
        apartment.setNbBedrooms(Integer.parseInt(prop.getProperty(&quot;nbBedrooms&quot;)));&#xD;
    if (prop.containsKey(&quot;pricePerNight&quot;))&#xD;
        apartment.setPricePerNight(Double.parseDouble(prop.getProperty(&quot;pricePerNight&quot;)));&#xD;
    if (prop.containsKey(&quot;nbMinNight&quot;))&#xD;
        apartment.setNbMinNight(Integer.parseInt(prop.getProperty(&quot;nbMinNight&quot;)));&#xD;
    LOGGER.info(&quot;Parameters inserted with success in the Apartment Object&quot;);&#xD;
    LOGGER.info(&quot;Leave readApartment method&quot;);&#xD;
    return apartment;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_4qbAQl_AEeqAAb4u4HLI7w" name="ReadApartmentsXMLFormat" visibility="public" method="_4qc1cF_AEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_4qeDkF_AEeqAAb4u4HLI7w" name="readApartment" visibility="public" method="_4qnNgF_AEeqAAb4u4HLI7w" raisedException="_4qfRsF_AEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_4qeqoF_AEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_4qeqoV_AEeqAAb4u4HLI7w" name="input"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_4qfRsF_AEeqAAb4u4HLI7w" name="NumberFormatException"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_VtMpsJjqEeqYCK4Btw7kWQ" client="_1bkeoF_AEeqAAb4u4HLI7w" supplier="_-FOsoJU1Eeqfq4Pvb_wd9Q"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_A3YaoF_BEeqAAb4u4HLI7w" name="toxmlproperties">
        <packagedElement xmi:type="uml:Class" xmi:id="_G6iP4F_BEeqAAb4u4HLI7w" name="XMLProperties" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_G6i28F_BEeqAAb4u4HLI7w" name="properties" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_G6jeAF_BEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_G6jeAV_BEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(XMLProperties.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_G6mhUF_BEeqAAb4u4HLI7w" name="XMLProperties" specification="_G6jeAl_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.properties = new Properties();&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_G6pkoF_BEeqAAb4u4HLI7w" name="toXML" specification="_G6oWgF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    properties.setProperty(&quot;nbSleeping&quot;, String.valueOf(a.getNbSleeping()));&#xD;
    properties.setProperty(&quot;nbMinNight&quot;, String.valueOf(a.getNbMinNight()));&#xD;
    properties.setProperty(&quot;terrace&quot;, String.valueOf(a.getTerrace()));&#xD;
    properties.setProperty(&quot;nbBedrooms&quot;, String.valueOf(a.getNbBedrooms()));&#xD;
    properties.setProperty(&quot;floorArea&quot;, String.valueOf(a.getFloorArea()));&#xD;
    properties.setProperty(&quot;pricePerNight&quot;, String.valueOf(a.getPricePerNight()));&#xD;
    properties.setProperty(&quot;tele&quot;, String.valueOf(a.getTele()));&#xD;
    properties.setProperty(&quot;wifi&quot;, String.valueOf(a.getWifi()));&#xD;
    properties.setProperty(&quot;title&quot;, a.getTitle());&#xD;
    properties.setProperty(&quot;nbBathrooms&quot;, String.valueOf(a.getNbBathrooms()));&#xD;
    properties.setProperty(&quot;address&quot;, a.getAddress());&#xD;
    properties.setProperty(&quot;floorAreaTerrace&quot;, String.valueOf(a.getFloorAreaTerrace()));&#xD;
    properties.setProperty(&quot;description&quot;, a.getDescription());&#xD;
    properties.storeToXML(xmlFile, &quot;Generated file for the apartment &quot; + a.getTitle());&#xD;
    LOGGER.info(&quot;Stream has been closed&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_G6jeAl_BEeqAAb4u4HLI7w" name="XMLProperties" visibility="public" method="_G6mhUF_BEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_G6oWgF_BEeqAAb4u4HLI7w" name="toXML" visibility="public" method="_G6pkoF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_G6oWgV_BEeqAAb4u4HLI7w" name="a"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_G6oWgl_BEeqAAb4u4HLI7w" name="xmlFile"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_QDfPMJjqEeqYCK4Btw7kWQ" client="_A3YaoF_BEeqAAb4u4HLI7w" supplier="_1QqroF-_EeqAAb4u4HLI7w"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_QgD_sF_BEeqAAb4u4HLI7w" name="utils">
        <packagedElement xmi:type="uml:Class" xmi:id="_WcYNIF_BEeqAAb4u4HLI7w" name="KeyManager" visibility="public">
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WccekF_BEeqAAb4u4HLI7w" name="getApiKey" specification="_WcY0MF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    String apiKey = System.getenv(&quot;APIKEY&quot;);&#xD;
    if (apiKey == null) {&#xD;
        String fichier = new File(&quot;API_KEY.txt&quot;).getAbsolutePath();&#xD;
        apiKey = &quot;&quot;;&#xD;
        try (FileReader fr = new FileReader(fichier)) {&#xD;
            int c = fr.read();&#xD;
            while (c != -1) {&#xD;
                apiKey += (char) c;&#xD;
                c = fr.read();&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
    return apiKey;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WcdFoF_BEeqAAb4u4HLI7w" name="getGeocodeApiKey" specification="_WccekV_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    String geocodeApiKey = System.getenv(&quot;GEOCODEAPIKEY&quot;);&#xD;
    if (geocodeApiKey == null) {&#xD;
        String fichier = new File(&quot;GEOCODE_API_KEY.txt&quot;).getAbsolutePath();&#xD;
        geocodeApiKey = &quot;&quot;;&#xD;
        try (FileReader fr = new FileReader(fichier)) {&#xD;
            int c = fr.read();&#xD;
            while (c != -1) {&#xD;
                geocodeApiKey += (char) c;&#xD;
                c = fr.read();&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
    return geocodeApiKey;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_WcY0MF_BEeqAAb4u4HLI7w" name="getApiKey" visibility="public" isStatic="true" method="_WccekF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WcY0MV_BEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_WccekV_BEeqAAb4u4HLI7w" name="getGeocodeApiKey" visibility="public" isStatic="true" method="_WcdFoF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_Wccekl_BEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_XDw9QF_BEeqAAb4u4HLI7w" name="RandomRange" visibility="public">
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_XDyLYl_BEeqAAb4u4HLI7w" name="weightRangeOfSum" specification="_XDxkUF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    List&lt;Double> weightRange = new ArrayList&lt;Double>();&#xD;
    for (int i = 0; i &lt; size; ++i) weightRange.add(Math.random());&#xD;
    /**
		 * Found on
		 * https://stackoverflow.com/questions/30125296/how-to-sum-a-list-of-integers-with-java-streams
		 */&#xD;
    double sum = weightRange.stream().reduce(0d, Double::sum);&#xD;
    weightRange = weightRange.stream().map( d -> (d / sum) * s).collect(ImmutableList.toImmutableList());&#xD;
    return weightRange;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_XDxkUF_BEeqAAb4u4HLI7w" name="weightRangeOfSum" visibility="public" isStatic="true" method="_XDyLYl_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_XDxkUV_BEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XDxkUl_BEeqAAb4u4HLI7w"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XDxkU1_BEeqAAb4u4HLI7w" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_XDyLYF_BEeqAAb4u4HLI7w" name="s">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_XDyLYV_BEeqAAb4u4HLI7w" name="size">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_OfX7oJjrEeqYCK4Btw7kWQ" client="_QgD_sF_BEeqAAb4u4HLI7w" supplier="_1QqroF-_EeqAAb4u4HLI7w"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_d2M6YF_BEeqAAb4u4HLI7w" name="valuefunction">
        <packagedElement xmi:type="uml:Class" xmi:id="_d19NUF_CEeqAAb4u4HLI7w" name="PieceWiseLinearValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_d1-bcF_CEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_d2AQoF_CEeqAAb4u4HLI7w" name="utilities" visibility="private" type="_d1-bcV_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_d2A3sF_CEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_d2A3sV_CEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(PieceWiseLinearValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_d2DT8F_CEeqAAb4u4HLI7w" name="PieceWiseLinearValueFunction" specification="_d2A3sl_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (!utilParameters.containsValue(0d) || !utilParameters.containsValue(1d)) {&#xD;
        throw new IllegalArgumentException(&quot;The value associated to the grade 0 or 1 is missing.&quot;);&#xD;
    }&#xD;
    Stream&lt;Double> error = utilParameters.values().stream().filter( v -> v > 1d || v &lt; 0d);&#xD;
    if (error.count() > 0) {&#xD;
        throw new IllegalArgumentException(&quot;The grades have to be between 0 and 1.&quot;);&#xD;
    }&#xD;
    utilities = ImmutableSortedMap.copyOf(utilParameters);&#xD;
    if (!Comparators.isInOrder(this.utilities.values(), Comparator.naturalOrder())) {&#xD;
        throw new IllegalArgumentException(&quot;A grade cannot be greater than another if its value associated is lower.&quot;);&#xD;
    }&#xD;
    LOGGER.info(&quot;The map of data has been successfully instantiated.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_d2FwMV_CEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_d2EiEF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Verify.verify(utilities.size() >= 2);&#xD;
    if (objectiveData &lt;= utilities.firstKey()) {&#xD;
        return 0d;&#xD;
    }&#xD;
    if (objectiveData >= utilities.lastKey()) {&#xD;
        return 1d;&#xD;
    }&#xD;
    Map.Entry&lt;Double, Double> minEntry = utilities.floorEntry(objectiveData);&#xD;
    Map.Entry&lt;Double, Double> maxEntry = utilities.ceilingEntry(objectiveData);&#xD;
    Double minKey = minEntry.getKey();&#xD;
    Double maxKey = maxEntry.getKey();&#xD;
    Double minValue = minEntry.getValue();&#xD;
    Double maxValue = maxEntry.getValue();&#xD;
    return ((objectiveData - minKey) * (maxValue - minValue) / (maxKey - minKey)) + minValue;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_d2JakF_CEeqAAb4u4HLI7w" name="apply" specification="_d2HlYF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return getSubjectiveValue(t);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_d2A3sl_CEeqAAb4u4HLI7w" name="PieceWiseLinearValueFunction" visibility="public" method="_d2DT8F_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_d2Cs4F_CEeqAAb4u4HLI7w" name="utilParameters"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_d2EiEF_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_d2FwMV_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_d2FJIF_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_d2FwMF_CEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_d2HlYF_CEeqAAb4u4HLI7w" name="apply" visibility="public" method="_d2JakF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_d2IMcF_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_d2IzgF_CEeqAAb4u4HLI7w" name="t">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Realization" xmi:id="_MVF3AGVGEeq0U8CyxWHVBA" client="_d19NUF_CEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_FnmEQGVGEeq0U8CyxWHVBA" client="_74b-8F_BEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_GjPNIGVGEeq0U8CyxWHVBA" client="_MMSn8F_CEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_PMAZwGVGEeq0U8CyxWHVBA" client="_oHIiMF_CEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_RSrLUGVGEeq0U8CyxWHVBA" client="_SVVCwF_CEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_SPxswGVGEeq0U8CyxWHVBA" client="_72rEYF_BEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_TWpOMGVGEeq0U8CyxWHVBA" client="_8udoAF_BEeqAAb4u4HLI7w" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_FajVQGXfEeqLXLaj_4v3Nw" client="_72rEYF_BEeqAAb4u4HLI7w" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_Jk4nsGXfEeqLXLaj_4v3Nw" client="_72rEYF_BEeqAAb4u4HLI7w" supplier="_XDw9QF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_LRaa8GXfEeqLXLaj_4v3Nw" client="_72rEYF_BEeqAAb4u4HLI7w" supplier="_d2M6YF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_72rEYF_BEeqAAb4u4HLI7w" name="ApartmentValueFunction" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72uHsF_BEeqAAb4u4HLI7w" name="floorAreaValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72uuwF_BEeqAAb4u4HLI7w" name="nbBedroomsValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72uuwV_BEeqAAb4u4HLI7w" name="nbSleepingValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72uuwl_BEeqAAb4u4HLI7w" name="nbBathroomsValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72vV0F_BEeqAAb4u4HLI7w" name="terraceValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72vV0V_BEeqAAb4u4HLI7w" name="floorAreaTerraceValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72vV0l_BEeqAAb4u4HLI7w" name="wifiValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72v84F_BEeqAAb4u4HLI7w" name="pricePerNightValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72v84V_BEeqAAb4u4HLI7w" name="nbMinNightValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72v84l_BEeqAAb4u4HLI7w" name="teleValueFunction" visibility="private" type="_siBZIF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72xLAF_BEeqAAb4u4HLI7w" name="floorAreaSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72xyEF_BEeqAAb4u4HLI7w" name="nbBedroomsSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_72yZIF_BEeqAAb4u4HLI7w" name="nbSleepingSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_720OUF_BEeqAAb4u4HLI7w" name="nbBathroomsSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_721ccF_BEeqAAb4u4HLI7w" name="terraceSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_722qkF_BEeqAAb4u4HLI7w" name="floorAreaTerraceSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_7234sF_BEeqAAb4u4HLI7w" name="wifiSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_725G0F_BEeqAAb4u4HLI7w" name="pricePerNightSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_725t4F_BEeqAAb4u4HLI7w" name="nbMinNightSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_7268AF_BEeqAAb4u4HLI7w" name="teleSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_728KIF_BEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_728xMF_BEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ApartmentValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_kSDG0JBxEeql4KIh5Ckynw" name="profile">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kSDt4JBxEeql4KIh5Ckynw"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kSEU8JBxEeql4KIh5Ckynw" value="1"/>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73BpsF_BEeqAAb4u4HLI7w" name="ApartmentValueFunction" specification="_729_UF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.nbBedroomsValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.nbSleepingValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.nbBathroomsValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.terraceValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.floorAreaTerraceValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.wifiValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.pricePerNightValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.nbMinNightValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.teleValueFunction = new ConstantValueFunction&lt;>(0d);&#xD;
    this.floorAreaSubjectiveValueWeight = 0.1;&#xD;
    this.nbBedroomsSubjectiveValueWeight = 0.1;&#xD;
    this.nbSleepingSubjectiveValueWeight = 0.1;&#xD;
    this.nbBathroomsSubjectiveValueWeight = 0.1;&#xD;
    this.terraceSubjectiveValueWeight = 0.1;&#xD;
    this.floorAreaTerraceSubjectiveValueWeight = 0.1;&#xD;
    this.wifiSubjectiveValueWeight = 0.1;&#xD;
    this.pricePerNightSubjectiveValueWeight = 0.1;&#xD;
    this.nbMinNightSubjectiveValueWeight = 0.1;&#xD;
    this.teleSubjectiveValueWeight = 0.1;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73KMkF_BEeqAAb4u4HLI7w" name="setFloorAreaValueFunction" specification="_73C30F_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaValueFunction = floorAreaValueFunction;&#xD;
    checkArgument(!(this.floorAreaValueFunction.equals(null)), &quot;The floor area preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The floor area preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73OeAF_BEeqAAb4u4HLI7w" name="setNbBedroomsValueFunction" specification="_73MBwF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.nbBedroomsValueFunction = nbBedroomsValueFunction;&#xD;
    checkArgument(!(this.nbBedroomsValueFunction.equals(null)), &quot;The number of bedrooms preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The number of bedrooms preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73SIYF_BEeqAAb4u4HLI7w" name="setNbSleepingValueFunction" specification="_73PsIF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.nbSleepingValueFunction = nbSleepingValueFunction;&#xD;
    checkArgument(!(this.nbSleepingValueFunction.equals(null)), &quot;The number of sleep-in preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The number of sleep-in preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73VywF_BEeqAAb4u4HLI7w" name="setNbBathroomsValueFunction" specification="_73T9kF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.nbBathroomsValueFunction = nbBathroomsValueFunction;&#xD;
    checkArgument(!(this.nbBathroomsValueFunction.equals(null)), &quot;The number of bathrooms preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The number of bathrooms preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73YPAF_BEeqAAb4u4HLI7w" name="setTerraceValueFunction" specification="_73WZ0F_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.terraceValueFunction = terraceValueFunction;&#xD;
    checkArgument(!(this.terraceValueFunction.equals(null)), &quot;The terrace preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The terrace preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73b5YF_BEeqAAb4u4HLI7w" name="setFloorAreaTerraceValueFunction" specification="_73aEMF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaTerraceValueFunction = floorAreaTerraceValueFunction;&#xD;
    checkArgument(!(this.floorAreaTerraceValueFunction.equals(null)), &quot;The floor area of the terrace preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The floor area of the terrace preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73gx4F_BEeqAAb4u4HLI7w" name="setWifiValueFunction" specification="_73e8sF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.wifiValueFunction = wifiValueFunction;&#xD;
    checkArgument(!(this.wifiValueFunction.equals(null)), &quot;The wifi preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The wifi preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73j1MF_BEeqAAb4u4HLI7w" name="setPricePerNightValueFunction" specification="_73inEF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.pricePerNightValueFunction = pricePerNightValueFunction;&#xD;
    checkArgument(!(this.pricePerNightValueFunction.equals(null)), &quot;The price per night preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The price per night preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73oGoF_BEeqAAb4u4HLI7w" name="setNbMinNightValueFunction" specification="_73lDUF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.nbMinNightValueFunction = nbMinNightValueFunction;&#xD;
    checkArgument(!(this.nbMinNightValueFunction.equals(null)), &quot;The number of minimum night preferencies cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The number of minimum night preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73rxAF_BEeqAAb4u4HLI7w" name="setTeleValueFunction" specification="_73pUwF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.teleValueFunction = teleValueFunction;&#xD;
    checkArgument(!(this.teleValueFunction.equals(null)), &quot;the  cannot be nulled&quot;);&#xD;
    LOGGER.info(&quot;The tele preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73tmMF_BEeqAAb4u4HLI7w" name="setFloorAreaSubjectiveValueWeight" specification="_73sYEF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(floorAreaSubjectiveValueWeight >= 0, &quot;The weight of the floor area cannot be negative&quot;);&#xD;
    this.floorAreaSubjectiveValueWeight = floorAreaSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The floor area weight has been set to &quot; + floorAreaSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73wCcF_BEeqAAb4u4HLI7w" name="setNbBedroomsSubjectiveValueWeight" specification="_73u0UF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBedroomsSubjectiveValueWeight >= 0, &quot;The weight of the number of bedrooms cannot be negative&quot;);&#xD;
    this.nbBedroomsSubjectiveValueWeight = nbBedroomsSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of bedrooms weight has been set to &quot; + nbBedroomsSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73zs0F_BEeqAAb4u4HLI7w" name="setNbSleepingSubjectiveValueWeight" specification="_73yesF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbSleepingSubjectiveValueWeight >= 0, &quot;The weight of the sleep-in cannot be negative&quot;);&#xD;
    this.nbSleepingSubjectiveValueWeight = nbSleepingSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of sleep-in weight has been set to &quot; + nbSleepingSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_732JEF_BEeqAAb4u4HLI7w" name="setNbBathroomsSubjectiveValueWeight" specification="_73068F_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBathroomsSubjectiveValueWeight >= 0, &quot;The weight of the number of bathrooms cannot be negative&quot;);&#xD;
    this.nbBathroomsSubjectiveValueWeight = nbBathroomsSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of bathrooms weight has been set to &quot; + nbBathroomsSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_734lUF_BEeqAAb4u4HLI7w" name="setTerraceSubjectiveValueWeight" specification="_732wIF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(terraceSubjectiveValueWeight >= 0, &quot;The weight of the terrace cannot be negative&quot;);&#xD;
    this.terraceSubjectiveValueWeight = terraceSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The terrace weight has been set to &quot; + terraceSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_736agF_BEeqAAb4u4HLI7w" name="setFloorAreaTerraceSubjectiveValueWeight" specification="_735MYF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(floorAreaTerraceSubjectiveValueWeight >= 0, &quot;The weight of the floor area terrace cannot be negative&quot;);&#xD;
    this.floorAreaTerraceSubjectiveValueWeight = floorAreaTerraceSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The floor area of the terrace weight has been set to &quot; + floorAreaTerraceSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73-E4F_BEeqAAb4u4HLI7w" name="setWifiSubjectiveValueWeight" specification="_7382wF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(wifiSubjectiveValueWeight >= 0, &quot;The weight of the wifi cannot be negative&quot;);&#xD;
    this.wifiSubjectiveValueWeight = wifiSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The wifi weight has been set to &quot; + wifiSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73_TAV_BEeqAAb4u4HLI7w" name="setPricePerNightSubjectiveValueWeight" specification="_73-r8F_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(pricePerNightSubjectiveValueWeight >= 0, &quot;The weight of the price per night cannot be negative&quot;);&#xD;
    this.pricePerNightSubjectiveValueWeight = pricePerNightSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The price per night weight has been set to &quot; + pricePerNightSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74BvQF_BEeqAAb4u4HLI7w" name="setNbMinNightSubjectiveValueWeight" specification="_74AhIF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbMinNightSubjectiveValueWeight >= 0, &quot;The weight of the minimum number of nights cannot be negative&quot;);&#xD;
    this.nbMinNightSubjectiveValueWeight = nbMinNightSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of minimum night weight has been set to &quot; + nbMinNightSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74DkcF_BEeqAAb4u4HLI7w" name="setTeleSubjectiveValueWeight" specification="_74CWUF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(teleSubjectiveValueWeight >= 0, &quot;The weight of the tele cannot be negative&quot;);&#xD;
    this.teleSubjectiveValueWeight = teleSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The wifi weight has been set to &quot; + teleSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74H14F_BEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_74GAsF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    double floorAreaSubjectiveValue;&#xD;
    double nbBedroomsSubjectiveValue;&#xD;
    double nbSleepingSubjectiveValue;&#xD;
    double nbBathroomsSubjectiveValue;&#xD;
    double terraceSubjectiveValue;&#xD;
    double floorAreaTerraceSubjectiveValue;&#xD;
    double wifiSubjectiveValue;&#xD;
    double pricePerNightSubjectiveValue;&#xD;
    double nbMinNightSubjectiveValue;&#xD;
    double teleSubjectiveValue;&#xD;
    checkArgument(floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea()) >= 0 &amp;&amp; floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea()) &lt;= 1, &quot;The subjective value of floor area should be between 0 and 1&quot;);&#xD;
    floorAreaSubjectiveValue = floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea());&#xD;
    LOGGER.info(&quot;the floor area subjective value has been set to &quot; + floorAreaSubjectiveValue);&#xD;
    checkArgument(nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms()) >= 0 &amp;&amp; nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms()) &lt;= 1, &quot;The subjective value of the number of bedrooms should be between 0 and 1&quot;);&#xD;
    nbBedroomsSubjectiveValue = nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms());&#xD;
    LOGGER.info(&quot;the number of bedrooms subjective value has been set to &quot; + nbBedroomsSubjectiveValue);&#xD;
    checkArgument(nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping()) >= 0 &amp;&amp; nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping()) &lt;= 1, &quot;The subjective value of the number of sleep-in should be between 0 and 1&quot;);&#xD;
    nbSleepingSubjectiveValue = nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping());&#xD;
    LOGGER.info(&quot;the number of sleepings subjective value has been set to &quot; + nbSleepingSubjectiveValue);&#xD;
    checkArgument(nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms()) >= 0 &amp;&amp; nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms()) &lt;= 1, &quot;The subjective value of the number of bathrooms should be between 0 and 1&quot;);&#xD;
    nbBathroomsSubjectiveValue = nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms());&#xD;
    LOGGER.info(&quot;the number of bathrooms subjective value has been set to &quot; + nbBathroomsSubjectiveValue);&#xD;
    checkArgument(terraceValueFunction.getSubjectiveValue(apart.getTerrace()) >= 0 &amp;&amp; terraceValueFunction.getSubjectiveValue(apart.getTerrace()) &lt;= 1, &quot;The subjective value of the terrace should be between 0 and 1&quot;);&#xD;
    terraceSubjectiveValue = terraceValueFunction.getSubjectiveValue(apart.getTerrace());&#xD;
    LOGGER.info(&quot;the terrace subjective value has been set to &quot; + terraceSubjectiveValue);&#xD;
    checkArgument(floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace()) >= 0 &amp;&amp; floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace()) &lt;= 1, &quot;The subjective value of the floor area of the terrace should be between 0 and 1&quot;);&#xD;
    floorAreaTerraceSubjectiveValue = floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace());&#xD;
    LOGGER.info(&quot;the floor area of the terrace subjective value has been set to &quot; + floorAreaTerraceSubjectiveValue);&#xD;
    checkArgument(wifiValueFunction.getSubjectiveValue(apart.getWifi()) >= 0 &amp;&amp; wifiValueFunction.getSubjectiveValue(apart.getWifi()) &lt;= 1, &quot;The subjective value of the wifi should be between 0 and 1&quot;);&#xD;
    wifiSubjectiveValue = wifiValueFunction.getSubjectiveValue(apart.getWifi());&#xD;
    LOGGER.info(&quot;the wifi subjective value has been set to &quot; + wifiSubjectiveValue);&#xD;
    checkArgument(pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight()) >= 0 &amp;&amp; pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight()) &lt;= 1, &quot;The subjective value of the price per night should be between 0 and 1&quot;);&#xD;
    pricePerNightSubjectiveValue = pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight());&#xD;
    LOGGER.info(&quot;the price per night subjective value has been set to &quot; + pricePerNightSubjectiveValue);&#xD;
    checkArgument(nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight()) >= 0 &amp;&amp; nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight()) &lt;= 1, &quot;The subjective value of the minimum number of nights should be between 0 and 1&quot;);&#xD;
    nbMinNightSubjectiveValue = nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight());&#xD;
    LOGGER.info(&quot;the minimum number of nights subjective value has been set to &quot; + nbMinNightSubjectiveValue);&#xD;
    checkArgument(teleValueFunction.getSubjectiveValue(apart.getTele()) >= 0 &amp;&amp; teleValueFunction.getSubjectiveValue(apart.getTele()) &lt;= 1, &quot;The subjective value of the presence of a tele should be between 0 and 1&quot;);&#xD;
    teleSubjectiveValue = teleValueFunction.getSubjectiveValue(apart.getTele());&#xD;
    LOGGER.info(&quot;the tele subjective value has been set to &quot; + teleSubjectiveValue);&#xD;
    return ((floorAreaSubjectiveValue * floorAreaSubjectiveValueWeight + nbBedroomsSubjectiveValue * nbBedroomsSubjectiveValueWeight + nbSleepingSubjectiveValue * nbSleepingSubjectiveValueWeight + nbBathroomsSubjectiveValue * nbBathroomsSubjectiveValueWeight + terraceSubjectiveValue * terraceSubjectiveValueWeight + floorAreaTerraceSubjectiveValue * floorAreaTerraceSubjectiveValueWeight + wifiSubjectiveValue * wifiSubjectiveValueWeight + pricePerNightSubjectiveValue * pricePerNightSubjectiveValueWeight + nbMinNightSubjectiveValue * nbMinNightSubjectiveValueWeight + teleSubjectiveValue * teleSubjectiveValueWeight) / (floorAreaSubjectiveValueWeight + nbBedroomsSubjectiveValueWeight + nbSleepingSubjectiveValueWeight + nbBathroomsSubjectiveValueWeight + terraceSubjectiveValueWeight + floorAreaTerraceSubjectiveValueWeight + wifiSubjectiveValueWeight + pricePerNightSubjectiveValueWeight + nbMinNightSubjectiveValueWeight + teleSubjectiveValueWeight));&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74KSIF_BEeqAAb4u4HLI7w" name="cloneAVF" specification="_74JEAF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentValueFunction avf = new ApartmentValueFunction();&#xD;
    avf.setFloorAreaValueFunction(this.floorAreaValueFunction);&#xD;
    avf.setNbBedroomsValueFunction(this.nbBedroomsValueFunction);&#xD;
    avf.setNbSleepingValueFunction(this.nbSleepingValueFunction);&#xD;
    avf.setNbBathroomsValueFunction(this.nbBathroomsValueFunction);&#xD;
    avf.setTerraceValueFunction(this.terraceValueFunction);&#xD;
    avf.setFloorAreaTerraceValueFunction(this.floorAreaTerraceValueFunction);&#xD;
    avf.setWifiValueFunction(this.wifiValueFunction);&#xD;
    avf.setPricePerNightValueFunction(this.pricePerNightValueFunction);&#xD;
    avf.setNbMinNightValueFunction(this.nbMinNightValueFunction);&#xD;
    avf.setTeleValueFunction(this.teleValueFunction);&#xD;
    avf.floorAreaSubjectiveValueWeight = this.floorAreaSubjectiveValueWeight;&#xD;
    avf.nbBedroomsSubjectiveValueWeight = this.nbBedroomsSubjectiveValueWeight;&#xD;
    avf.nbSleepingSubjectiveValueWeight = this.nbSleepingSubjectiveValueWeight;&#xD;
    avf.nbBathroomsSubjectiveValueWeight = this.nbBathroomsSubjectiveValueWeight;&#xD;
    avf.terraceSubjectiveValueWeight = this.terraceSubjectiveValueWeight;&#xD;
    avf.floorAreaTerraceSubjectiveValueWeight = this.floorAreaTerraceSubjectiveValueWeight;&#xD;
    avf.wifiSubjectiveValueWeight = this.wifiSubjectiveValueWeight;&#xD;
    avf.pricePerNightSubjectiveValueWeight = this.pricePerNightSubjectiveValueWeight;&#xD;
    avf.nbMinNightSubjectiveValueWeight = this.nbMinNightSubjectiveValueWeight;&#xD;
    avf.teleSubjectiveValueWeight = this.teleSubjectiveValueWeight;&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74PxsF_BEeqAAb4u4HLI7w" name="getRandomApartmentValueFunction" specification="_74MHUF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentValueFunction apartValueFunction = new ApartmentValueFunction();&#xD;
    Random random = new Random();&#xD;
    DiscreteValueFunction&lt;Double> nbBedroomsEndBoundMap = DiscreteValueFunction.discreteValueFunctionBeetween(4, 6);&#xD;
    DiscreteValueFunction&lt;Double> nbSleepingEndBoundMap = DiscreteValueFunction.discreteValueFunctionBeetween(4, 6);&#xD;
    DiscreteValueFunction&lt;Double> nbBathroomsEndBoundMap = DiscreteValueFunction.discreteValueFunctionBeetween(1, 3);&#xD;
    int floorAreaEndBound = random.nextInt(80) + 21;&#xD;
    int terraceEndBoundInt = random.nextInt(2);&#xD;
    boolean terraceEndBound = false;&#xD;
    if (terraceEndBoundInt == 1)&#xD;
        terraceEndBound = true;&#xD;
    int floorAreaTerraceEndBound = random.nextInt(80) + 21;&#xD;
    int wifiEndBoundInt = random.nextInt(2);&#xD;
    boolean wifiEndBound = false;&#xD;
    if (wifiEndBoundInt == 1)&#xD;
        wifiEndBound = true;&#xD;
    int pricePerNightEndBound = random.nextInt(180) + 21;&#xD;
    int nbMinNightEndBound = random.nextInt(7) + 3;&#xD;
    int teleEndBoundInt = random.nextInt(2);&#xD;
    boolean teleEndBound = false;&#xD;
    if (teleEndBoundInt == 1)&#xD;
        teleEndBound = true;&#xD;
    int floorAreaStartBound = random.nextInt(floorAreaEndBound);&#xD;
    int floorAreaTerraceStartBound = random.nextInt(floorAreaTerraceEndBound);&#xD;
    int pricePerNightStartBound = random.nextInt(pricePerNightEndBound);&#xD;
    int nbMinNightStartBound = random.nextInt(nbMinNightEndBound);&#xD;
    apartValueFunction.setFloorAreaValueFunction(new LinearValueFunction(floorAreaStartBound, floorAreaEndBound));&#xD;
    apartValueFunction.setNbBedroomsValueFunction(nbBedroomsEndBoundMap);&#xD;
    apartValueFunction.setNbSleepingValueFunction(nbSleepingEndBoundMap);&#xD;
    apartValueFunction.setNbBathroomsValueFunction(nbBathroomsEndBoundMap);&#xD;
    apartValueFunction.setTerraceValueFunction(new BooleanValueFunction(terraceEndBound));&#xD;
    apartValueFunction.setFloorAreaTerraceValueFunction(new LinearValueFunction(floorAreaTerraceStartBound, floorAreaTerraceEndBound));&#xD;
    apartValueFunction.setWifiValueFunction(new BooleanValueFunction(wifiEndBound));&#xD;
    apartValueFunction.setPricePerNightValueFunction(new LinearValueFunction(pricePerNightStartBound, pricePerNightEndBound));&#xD;
    apartValueFunction.setNbMinNightValueFunction(new ReversedLinearValueFunction(nbMinNightStartBound, nbMinNightEndBound));&#xD;
    apartValueFunction.setTeleValueFunction(new BooleanValueFunction(teleEndBound));&#xD;
    List&lt;Double> weightRange = RandomRange.weightRangeOfSum(1d, 10);&#xD;
    LOGGER.info(&quot;Weight has been set to : &quot; + weightRange);&#xD;
    apartValueFunction.floorAreaSubjectiveValueWeight = weightRange.get(0);&#xD;
    apartValueFunction.nbBedroomsSubjectiveValueWeight = weightRange.get(1);&#xD;
    apartValueFunction.nbSleepingSubjectiveValueWeight = weightRange.get(2);&#xD;
    apartValueFunction.nbBathroomsSubjectiveValueWeight = weightRange.get(3);&#xD;
    apartValueFunction.terraceSubjectiveValueWeight = weightRange.get(4);&#xD;
    apartValueFunction.floorAreaTerraceSubjectiveValueWeight = weightRange.get(5);&#xD;
    apartValueFunction.wifiSubjectiveValueWeight = weightRange.get(6);&#xD;
    apartValueFunction.pricePerNightSubjectiveValueWeight = weightRange.get(7);&#xD;
    apartValueFunction.nbMinNightSubjectiveValueWeight = weightRange.get(8);&#xD;
    apartValueFunction.teleSubjectiveValueWeight = weightRange.get(9);&#xD;
    return apartValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74aw0F_BEeqAAb4u4HLI7w" name="adaptBounds" specification="_74V4UF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentValueFunction avf = cloneAVF();&#xD;
    switch(criterion) {&#xD;
        case FLOOR_AREA:&#xD;
            avf.setFloorAreaValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.floorAreaValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case FLOOR_AREA_TERRACE:&#xD;
            avf.setFloorAreaTerraceValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.floorAreaTerraceValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case PRICE_PER_NIGHT:&#xD;
            avf.setPricePerNightValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.pricePerNightValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case NB_SLEEPING:&#xD;
            avf.setNbSleepingValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.nbSleepingValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case NB_BATHROOMS:&#xD;
            avf.setNbBathroomsValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.nbBathroomsValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case NB_BEDROOMS:&#xD;
            avf.setNbBedroomsValueFunction(avf.adaptLinearValueFunction((LinearValueFunction) avf.nbBedroomsValueFunction, newBound, lower));&#xD;
            break;&#xD;
        case NB_MIN_NIGHT:&#xD;
            avf.setNbMinNightValueFunction(this.adaptLinearValueFunction((LinearValueFunction) avf.nbMinNightValueFunction, newBound, lower));&#xD;
            break;&#xD;
        default:&#xD;
            throw new IllegalArgumentException();&#xD;
    }&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74iFkF_BEeqAAb4u4HLI7w" name="adaptLinearValueFunction" specification="_74fCQF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    double remainingBound = 0d;&#xD;
    if (lower) {&#xD;
        remainingBound = oldLVF.getInterval().upperEndpoint();&#xD;
        return new LinearValueFunction(newBound, remainingBound);&#xD;
    } else {&#xD;
        remainingBound = oldLVF.getInterval().lowerEndpoint();&#xD;
        return new LinearValueFunction(remainingBound, newBound);&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74m-EF_BEeqAAb4u4HLI7w" name="adaptWeight" specification="_74j6wF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Preconditions.checkArgument(!lessImportant.equals(moreImportant), &quot;Both fields are the same.&quot;);&#xD;
    ApartmentValueFunction avf = cloneAVF();&#xD;
    double weightSum = 0;&#xD;
    weightSum += avf.getSubjectiveValueWeight(moreImportant);&#xD;
    weightSum += avf.getSubjectiveValueWeight(lessImportant);&#xD;
    avf = avf.setSubjectiveValueWeight(moreImportant, 9 * weightSum / 10);&#xD;
    avf = avf.setSubjectiveValueWeight(lessImportant, weightSum / 10);&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74qBYF_BEeqAAb4u4HLI7w" name="getSubjectiveValueWeight" specification="_74oMMF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    switch(awt) {&#xD;
        case TELE:&#xD;
            return teleSubjectiveValueWeight;&#xD;
        case TERRACE:&#xD;
            return terraceSubjectiveValueWeight;&#xD;
        case WIFI:&#xD;
            return wifiSubjectiveValueWeight;&#xD;
        case FLOOR_AREA:&#xD;
            return floorAreaTerraceSubjectiveValueWeight;&#xD;
        case FLOOR_AREA_TERRACE:&#xD;
            return floorAreaTerraceSubjectiveValueWeight;&#xD;
        case NB_BATHROOMS:&#xD;
            return nbBathroomsSubjectiveValueWeight;&#xD;
        case NB_BEDROOMS:&#xD;
            return nbBedroomsSubjectiveValueWeight;&#xD;
        case NB_SLEEPING:&#xD;
            return nbSleepingSubjectiveValueWeight;&#xD;
        case NB_MIN_NIGHT:&#xD;
            return nbMinNightSubjectiveValueWeight;&#xD;
        case PRICE_PER_NIGHT:&#xD;
            return pricePerNightSubjectiveValueWeight;&#xD;
        default:&#xD;
            throw new IllegalArgumentException();&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_74trwF_BEeqAAb4u4HLI7w" name="setSubjectiveValueWeight" specification="_74rPgF_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    ApartmentValueFunction avf = cloneAVF();&#xD;
    switch(awt) {&#xD;
        case TELE:&#xD;
            avf.setTeleSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case TERRACE:&#xD;
            avf.setTerraceSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case WIFI:&#xD;
            avf.setWifiSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case FLOOR_AREA:&#xD;
            avf.setFloorAreaSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case FLOOR_AREA_TERRACE:&#xD;
            avf.setFloorAreaTerraceSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_BATHROOMS:&#xD;
            avf.setNbBathroomsSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_BEDROOMS:&#xD;
            avf.setNbBedroomsSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_SLEEPING:&#xD;
            avf.setNbSleepingSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_MIN_NIGHT:&#xD;
            avf.setNbMinNightSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case PRICE_PER_NIGHT:&#xD;
            avf.setPricePerNightSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        default:&#xD;
            throw new IllegalArgumentException();&#xD;
    }&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_729_UF_BEeqAAb4u4HLI7w" name="ApartmentValueFunction" visibility="public" method="_73BpsF_BEeqAAb4u4HLI7w"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73C30F_BEeqAAb4u4HLI7w" name="setFloorAreaValueFunction" visibility="public" method="_73KMkF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73EF8F_BEeqAAb4u4HLI7w" name="floorAreaValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73MBwF_BEeqAAb4u4HLI7w" name="setNbBedroomsValueFunction" visibility="public" method="_73OeAF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73NP4F_BEeqAAb4u4HLI7w" name="nbBedroomsValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73PsIF_BEeqAAb4u4HLI7w" name="setNbSleepingValueFunction" visibility="public" method="_73SIYF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73Q6QF_BEeqAAb4u4HLI7w" name="nbSleepingValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73T9kF_BEeqAAb4u4HLI7w" name="setNbBathroomsValueFunction" visibility="public" method="_73VywF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73UkoF_BEeqAAb4u4HLI7w" name="nbBathroomsValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73WZ0F_BEeqAAb4u4HLI7w" name="setTerraceValueFunction" visibility="public" method="_73YPAF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73XA4F_BEeqAAb4u4HLI7w" name="terraceValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73aEMF_BEeqAAb4u4HLI7w" name="setFloorAreaTerraceValueFunction" visibility="public" method="_73b5YF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73arQF_BEeqAAb4u4HLI7w" name="floorAreaTerraceValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73e8sF_BEeqAAb4u4HLI7w" name="setWifiValueFunction" visibility="public" method="_73gx4F_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73fjwF_BEeqAAb4u4HLI7w" name="wifiValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73inEF_BEeqAAb4u4HLI7w" name="setPricePerNightValueFunction" visibility="public" method="_73j1MF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73jOIF_BEeqAAb4u4HLI7w" name="pricePerNightValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73lDUF_BEeqAAb4u4HLI7w" name="setNbMinNightValueFunction" visibility="public" method="_73oGoF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73mRcF_BEeqAAb4u4HLI7w" name="nbMinNightValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73pUwF_BEeqAAb4u4HLI7w" name="setTeleValueFunction" visibility="public" method="_73rxAF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73qi4F_BEeqAAb4u4HLI7w" name="teleValueFunction" type="_siBZIF_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73sYEF_BEeqAAb4u4HLI7w" name="setFloorAreaSubjectiveValueWeight" visibility="public" method="_73tmMF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73s_IF_BEeqAAb4u4HLI7w" name="floorAreaSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73u0UF_BEeqAAb4u4HLI7w" name="setNbBedroomsSubjectiveValueWeight" visibility="public" method="_73wCcF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73vbYF_BEeqAAb4u4HLI7w" name="nbBedroomsSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73yesF_BEeqAAb4u4HLI7w" name="setNbSleepingSubjectiveValueWeight" visibility="public" method="_73zs0F_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73zFwF_BEeqAAb4u4HLI7w" name="nbSleepingSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73068F_BEeqAAb4u4HLI7w" name="setNbBathroomsSubjectiveValueWeight" visibility="public" method="_732JEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_731iAF_BEeqAAb4u4HLI7w" name="nbBathroomsSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_732wIF_BEeqAAb4u4HLI7w" name="setTerraceSubjectiveValueWeight" visibility="public" method="_734lUF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_733XMF_BEeqAAb4u4HLI7w" name="terraceSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_735MYF_BEeqAAb4u4HLI7w" name="setFloorAreaTerraceSubjectiveValueWeight" visibility="public" method="_736agF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_735zcF_BEeqAAb4u4HLI7w" name="floorAreaTerraceSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_7382wF_BEeqAAb4u4HLI7w" name="setWifiSubjectiveValueWeight" visibility="public" method="_73-E4F_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_739d0F_BEeqAAb4u4HLI7w" name="wifiSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_73-r8F_BEeqAAb4u4HLI7w" name="setPricePerNightSubjectiveValueWeight" visibility="public" method="_73_TAV_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_73_TAF_BEeqAAb4u4HLI7w" name="pricePerNightSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74AhIF_BEeqAAb4u4HLI7w" name="setNbMinNightSubjectiveValueWeight" visibility="public" method="_74BvQF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74BIMF_BEeqAAb4u4HLI7w" name="nbMinNightSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74CWUF_BEeqAAb4u4HLI7w" name="setTeleSubjectiveValueWeight" visibility="public" method="_74DkcF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74C9YF_BEeqAAb4u4HLI7w" name="teleSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74GAsF_BEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_74H14F_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74GnwF_BEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74HO0F_BEeqAAb4u4HLI7w" name="apart"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74JEAF_BEeqAAb4u4HLI7w" name="cloneAVF" visibility="private" method="_74KSIF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74JrEF_BEeqAAb4u4HLI7w" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74MHUF_BEeqAAb4u4HLI7w" name="getRandomApartmentValueFunction" visibility="public" isStatic="true" method="_74PxsF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74MuYF_BEeqAAb4u4HLI7w" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74V4UF_BEeqAAb4u4HLI7w" name="adaptBounds" visibility="public" method="_74aw0F_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74WfYF_BEeqAAb4u4HLI7w" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74XtgF_BEeqAAb4u4HLI7w" name="criterion" type="__lgUEGVHEeq0U8CyxWHVBA"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74YUkF_BEeqAAb4u4HLI7w" name="newBound">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74aJwF_BEeqAAb4u4HLI7w" name="lower">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74fCQF_BEeqAAb4u4HLI7w" name="adaptLinearValueFunction" visibility="private" method="_74iFkF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74fpUF_BEeqAAb4u4HLI7w" type="_74b-8F_BEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74gQYF_BEeqAAb4u4HLI7w" name="oldLVF" type="_74b-8F_BEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74g3cF_BEeqAAb4u4HLI7w" name="newBound">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74hegF_BEeqAAb4u4HLI7w" name="lower">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74j6wF_BEeqAAb4u4HLI7w" name="adaptWeight" visibility="private" method="_74m-EF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74kh0F_BEeqAAb4u4HLI7w" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74lv8F_BEeqAAb4u4HLI7w" name="moreImportant" type="__lgUEGVHEeq0U8CyxWHVBA"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74mXAF_BEeqAAb4u4HLI7w" name="lessImportant" type="__lgUEGVHEeq0U8CyxWHVBA"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74oMMF_BEeqAAb4u4HLI7w" name="getSubjectiveValueWeight" visibility="private" method="_74qBYF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74ozQF_BEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74paUF_BEeqAAb4u4HLI7w" name="awt" type="__lgUEGVHEeq0U8CyxWHVBA"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_74rPgF_BEeqAAb4u4HLI7w" name="setSubjectiveValueWeight" visibility="public" method="_74trwF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74r2kF_BEeqAAb4u4HLI7w" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74sdoF_BEeqAAb4u4HLI7w" name="awt" type="__lgUEGVHEeq0U8CyxWHVBA"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_74tEsF_BEeqAAb4u4HLI7w" name="value">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Interface" xmi:id="_siBZIF_CEeqAAb4u4HLI7w" name="PartialValueFunction" visibility="public">
          <ownedOperation xmi:type="uml:Operation" xmi:id="_siONcV_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_siO0gF_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_siO0gV_CEeqAAb4u4HLI7w" name="objectiveData" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_73FUEF_BEeqAAb4u4HLI7w" name="IllegalArgumentException"/>
        <packagedElement xmi:type="uml:Enumeration" xmi:id="__lgUEGVHEeq0U8CyxWHVBA" name="Criterion" visibility="public">
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__lzPAGVHEeq0U8CyxWHVBA" name="TELE"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l0dIGVHEeq0U8CyxWHVBA" name="TERRACE"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l1EMGVHEeq0U8CyxWHVBA" name="WIFI"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l1rQGVHEeq0U8CyxWHVBA" name="FLOOR_AREA"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l25YGVHEeq0U8CyxWHVBA" name="FLOOR_AREA_TERRACE"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l4ukGVHEeq0U8CyxWHVBA" name="NB_BATHROOMS"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l58sGVHEeq0U8CyxWHVBA" name="NB_BEDROOMS"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l8Y8GVHEeq0U8CyxWHVBA" name="NB_SLEEPING"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__l-1MGVHEeq0U8CyxWHVBA" name="NB_MIN_NIGHT"/>
          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="__mDGoGVHEeq0U8CyxWHVBA" name="PRICE_PER_NIGHT"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_74b-8F_BEeqAAb4u4HLI7w" name="LinearValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_WnXfsF_CEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_WnZ78F_CEeqAAb4u4HLI7w" name="interval" visibility="private" type="_WnYGwF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_WnajAF_CEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_WnajAV_CEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(LinearValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Wnc_QV_CEeqAAb4u4HLI7w" name="LinearValueFunction" specification="_WnajAl_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (min >= max) {&#xD;
        LOGGER.error(&quot;The upper bound is equal to the lower bound in the constructor of the LinearValueFunction.&quot;);&#xD;
        throw new IllegalArgumentException(&quot;The upper bound can't be equal to the lower bound.&quot;);&#xD;
    }&#xD;
    interval = Range.closed(min, max);&#xD;
    LOGGER.info(&quot;The interval [&quot; + min + &quot;,&quot; + max + &quot;] &quot; + &quot; has been set with success in the LinearValueFunction class.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WndmUV_CEeqAAb4u4HLI7w" name="getInterval" specification="_Wnc_Ql_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return this.interval;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_Wnjs8F_CEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_WndmUl_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (interval.isEmpty())&#xD;
        throw new IllegalStateException();&#xD;
    if (interval.lowerEndpoint() >= objectiveData) {&#xD;
        return 0;&#xD;
    } else if (interval.upperEndpoint() &lt;= objectiveData) {&#xD;
        return 1;&#xD;
    } else {&#xD;
        return (objectiveData - interval.lowerEndpoint()) / (interval.upperEndpoint() - interval.lowerEndpoint());&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WnmJMF_CEeqAAb4u4HLI7w" name="apply" specification="_Wnk7EF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return getSubjectiveValue(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_WnajAl_CEeqAAb4u4HLI7w" name="LinearValueFunction" visibility="public" method="_Wnc_QV_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WncYMF_CEeqAAb4u4HLI7w" name="min">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_Wnc_QF_CEeqAAb4u4HLI7w" name="max">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_Wnc_Ql_CEeqAAb4u4HLI7w" name="getInterval" visibility="public" method="_WndmUV_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WndmUF_CEeqAAb4u4HLI7w" type="_WnYGwF_CEeqAAb4u4HLI7w" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_WndmUl_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_Wnjs8F_CEeqAAb4u4HLI7w" raisedException="_Wne0cF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WndmU1_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WneNYF_CEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_Wnk7EF_CEeqAAb4u4HLI7w" name="apply" visibility="public" method="_WnmJMF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_Wnk7EV_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_WnliIF_CEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_8udoAF_BEeqAAb4u4HLI7w" name="BooleanValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_8uePEF_BEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_8ugrUF_BEeqAAb4u4HLI7w" name="subjective" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_8uhSYF_BEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_8uhSYV_BEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(BooleanValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8ujuoF_BEeqAAb4u4HLI7w" name="BooleanValueFunction" specification="_8uhSYl_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    subjective = new HashMap&lt;>();&#xD;
    if (isPrefered) {&#xD;
        subjective.put(true, 1d);&#xD;
        subjective.put(false, 0d);&#xD;
    } else {&#xD;
        subjective.put(false, 1d);&#xD;
        subjective.put(true, 0d);&#xD;
    }&#xD;
    LOGGER.info(&quot;The Map with the subjective values for true and false has been set with success in the BooleanValueFunction class.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8ukVsF_BEeqAAb4u4HLI7w" name="apply" specification="_8ujuoV_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return this.getSubjectiveValue(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_8unZAF_BEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_8ukVsV_BEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return subjective.get(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_8uhSYl_BEeqAAb4u4HLI7w" name="BooleanValueFunction" visibility="public" method="_8ujuoF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8ujHkF_BEeqAAb4u4HLI7w" name="isPrefered">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_8ujuoV_BEeqAAb4u4HLI7w" name="apply" visibility="public" method="_8ukVsF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8ujuol_BEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8ujuo1_BEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_f-GnEPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_8ukVsV_BEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_8unZAF_BEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8uk8wF_BEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8umK4F_BEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_f-GnEPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_MMSn8F_CEeqAAb4u4HLI7w" name="ConstantValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_MMTPAF_CEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_MMT2EF_CEeqAAb4u4HLI7w" name="subjectiveValue" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MMYHgF_CEeqAAb4u4HLI7w" name="ConstantValueFunction" specification="_MMUdIF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    this.subjectiveValue = d;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MMajwV_CEeqAAb4u4HLI7w" name="apply" specification="_MMZ8sF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return getSubjectiveValue(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MMgDUF_CEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_MMbK0F_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return this.subjectiveValue;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_MMUdIF_CEeqAAb4u4HLI7w" name="ConstantValueFunction" visibility="public" method="_MMYHgF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_MMXgcF_CEeqAAb4u4HLI7w" name="d">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_MMZ8sF_CEeqAAb4u4HLI7w" name="apply" visibility="public" method="_MMajwV_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_MMZ8sV_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_MMajwF_CEeqAAb4u4HLI7w" name="objectiveData" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_MMbK0F_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_MMgDUF_CEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_MMbx4F_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_MMcY8F_CEeqAAb4u4HLI7w" name="objectiveData" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_MMYHgV_CEeqAAb4u4HLI7w" name="T"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_SVVCwF_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_SVVp0F_CEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_SVYGEF_CEeqAAb4u4HLI7w" name="subjective" visibility="private" type="_SVWQ4l_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_SVYtIF_CEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_SVYtIV_CEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(DiscreteValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVc-kV_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" specification="_SVYtIl_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(!(s1.equals(s2) &amp;&amp; s1.equals(s3) &amp;&amp; s2.equals(s3)), &quot;The elements have to be different&quot;);&#xD;
    subjective = ImmutableMap.of(s1, 0.0, s2, 0.5, s3, 1.0);&#xD;
    LOGGER.info(&quot;The Map with the three elements have been set with success&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVjFMF_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" specification="_SVeMsF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(!(s1.equals(s2)), &quot;The elements have to be different&quot;);&#xD;
    subjective = ImmutableMap.of(s1, 0.0, s2, 1.0);&#xD;
    LOGGER.info(&quot;The Map with the two elements have been set with success&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVn9sF_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" specification="_SVjsQF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Stream&lt;Entry&lt;T, Double>> erreur = subjective.entrySet().stream().filter(( entry) -> entry.getValue() &lt; 0 || entry.getValue() > 1);&#xD;
    Map&lt;T, Double> mapError = erreur.collect(Collectors.toMap(( entry) -> entry.getKey(), ( entry) -> entry.getValue()));&#xD;
    if (!(mapError.isEmpty())) {&#xD;
        throw new IllegalArgumentException(&quot;The subjective values must be between 0 and 1. The wrong values are : &quot; + mapError);&#xD;
    }&#xD;
    this.subjective = ImmutableMap.copyOf(subjective);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVqZ8V_CEeqAAb4u4HLI7w" name="apply" specification="_SVpL0F_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return getSubjectiveValue(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVtdQF_CEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_SVroEF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return subjective.get(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_SVy80F_CEeqAAb4u4HLI7w" name="discreteValueFunctionBeetween" specification="_SVurYF_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    Verify.verify(min &lt; max);&#xD;
    Random random = new Random();&#xD;
    int var = random.nextInt(max - min + 1) + min;&#xD;
    double newSubjectiveValue = 0;&#xD;
    double oldSubjectiveValue = 0;&#xD;
    HashMap&lt;Double, Double> varMap = new HashMap&lt;>();&#xD;
    for (double i = 0; i &lt; var; ++i) {&#xD;
        oldSubjectiveValue = newSubjectiveValue;&#xD;
        newSubjectiveValue = Double.valueOf(i) / var - oldSubjectiveValue;&#xD;
        newSubjectiveValue = random.nextDouble() * newSubjectiveValue + oldSubjectiveValue;&#xD;
        varMap.put(i, newSubjectiveValue);&#xD;
    }&#xD;
    return new DiscreteValueFunction&lt;Double>(varMap);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVYtIl_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" visibility="public" method="_SVc-kV_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVcXgF_CEeqAAb4u4HLI7w" name="s1" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVcXgV_CEeqAAb4u4HLI7w" name="s2" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVc-kF_CEeqAAb4u4HLI7w" name="s3" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVeMsF_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" visibility="public" method="_SVjFMF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVh3EF_CEeqAAb4u4HLI7w" name="s1" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVieIF_CEeqAAb4u4HLI7w" name="s2" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVjsQF_CEeqAAb4u4HLI7w" name="DiscreteValueFunction" visibility="public" method="_SVn9sF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVnWoF_CEeqAAb4u4HLI7w" name="subjective"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVpL0F_CEeqAAb4u4HLI7w" name="apply" visibility="public" method="_SVqZ8V_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVpy4F_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVqZ8F_CEeqAAb4u4HLI7w" name="objectiveData" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVroEF_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_SVtdQF_CEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVsPIF_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVs2MF_CEeqAAb4u4HLI7w" name="objectiveData" type="_MMYHgV_CEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_SVurYF_CEeqAAb4u4HLI7w" name="discreteValueFunctionBeetween" visibility="public" isStatic="true" method="_SVy80F_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVwgkF_CEeqAAb4u4HLI7w" type="_SVVCwF_CEeqAAb4u4HLI7w" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVxHoF_CEeqAAb4u4HLI7w" name="min">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_SVyVwF_CEeqAAb4u4HLI7w" name="max">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_Wne0cF_CEeqAAb4u4HLI7w" name="IllegalStateException"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_oHIiMF_CEeqAAb4u4HLI7w" name="ReversedLinearValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_oHJJQF_CEeqAAb4u4HLI7w"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_oHJJQV_CEeqAAb4u4HLI7w" name="interval" visibility="private" type="_WnYGwF_CEeqAAb4u4HLI7w" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_oHJwUF_CEeqAAb4u4HLI7w" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_oHJwUV_CEeqAAb4u4HLI7w" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ReversedLinearValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oHMzoF_CEeqAAb4u4HLI7w" name="ReversedLinearValueFunction" specification="_oHJwUl_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (min == max) {&#xD;
        LOGGER.error(&quot;The upper bound is equal to the lower bound in the constructor of the LinearValueFunction.&quot;);&#xD;
        throw new IllegalArgumentException(&quot;The upper bound can't be equal to the lower bound.&quot;);&#xD;
    }&#xD;
    interval = Range.closed(min, max);&#xD;
    LOGGER.info(&quot;The interval [&quot; + min + &quot;,&quot; + max + &quot;] &quot; + &quot; has been set with success in the LinearValueFunction class.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oHOBwF_CEeqAAb4u4HLI7w" name="getSubjectiveValue" specification="_oHMzoV_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    if (interval.lowerEndpoint() > objectiveData) {&#xD;
        return 1;&#xD;
    } else if (interval.upperEndpoint() &lt; objectiveData) {&#xD;
        return 0;&#xD;
    } else {&#xD;
        return 1 - (objectiveData - interval.lowerEndpoint()) / (interval.upperEndpoint() - interval.lowerEndpoint());&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_oHP28l_CEeqAAb4u4HLI7w" name="apply" specification="_oHPP4F_CEeqAAb4u4HLI7w">
            <language>JAVA</language>
            <body>&#xD;
    return getSubjectiveValue(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_oHJwUl_CEeqAAb4u4HLI7w" name="ReversedLinearValueFunction" visibility="public" method="_oHMzoF_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHMMkF_CEeqAAb4u4HLI7w" name="min">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHMMkV_CEeqAAb4u4HLI7w" name="max">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_oHMzoV_CEeqAAb4u4HLI7w" name="getSubjectiveValue" visibility="public" method="_oHOBwF_CEeqAAb4u4HLI7w" raisedException="_73FUEF_BEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHMzol_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHNasF_CEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_oHPP4F_CEeqAAb4u4HLI7w" name="apply" visibility="public" method="_oHP28l_CEeqAAb4u4HLI7w">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHP28F_CEeqAAb4u4HLI7w" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_oHP28V_CEeqAAb4u4HLI7w" name="objectiveData">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_KgG0cPaLEeW5KOK8aDMdgA"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Association" xmi:id="_MT4ToGXWEeqLXLaj_4v3Nw" visibility="private" memberEnd="_MT5hwGXWEeqLXLaj_4v3Nw _MT5hw2XWEeqLXLaj_4v3Nw">
          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MT46sGXWEeqLXLaj_4v3Nw" source="org.eclipse.papyrus">
            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MT46sWXWEeqLXLaj_4v3Nw" key="nature" value="UML_Nature"/>
          </eAnnotations>
          <ownedEnd xmi:type="uml:Property" xmi:id="_MT5hw2XWEeqLXLaj_4v3Nw" name="XValueFunction" type="_72rEYF_BEeqAAb4u4HLI7w" association="_MT4ToGXWEeqLXLaj_4v3Nw">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rNfFEGXWEeqLXLaj_4v3Nw"/>
          </ownedEnd>
          <ownedEnd xmi:type="uml:Property" xmi:id="_MT5hwGXWEeqLXLaj_4v3Nw" type="_siBZIF_CEeqAAb4u4HLI7w" association="_MT4ToGXWEeqLXLaj_4v3Nw">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MT5hwWXWEeqLXLaj_4v3Nw" value="8"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MT5hwmXWEeqLXLaj_4v3Nw" value="8"/>
          </ownedEnd>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_0ZZGsJjpEeqYCK4Btw7kWQ" client="_d2M6YF_BEeqAAb4u4HLI7w" supplier="_JAqEUF_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_q-Zh0J2dEeq5UMfZ1C8e7g" name="LinearApartmentValueFunction" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-irwJ2dEeq5UMfZ1C8e7g" name="floorAreaValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-m9MJ2dEeq5UMfZ1C8e7g" name="nbBedroomsValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-oLUJ2dEeq5UMfZ1C8e7g" name="nbSleepingValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-oyYJ2dEeq5UMfZ1C8e7g" name="nbBathroomsValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-tD0J2dEeq5UMfZ1C8e7g" name="terraceValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-u5AJ2dEeq5UMfZ1C8e7g" name="floorAreaTerraceValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-wuMJ2dEeq5UMfZ1C8e7g" name="wifiValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-0_oJ2dEeq5UMfZ1C8e7g" name="pricePerNightValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-1msJ2dEeq5UMfZ1C8e7g" name="nbMinNightValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-2NwJ2dEeq5UMfZ1C8e7g" name="teleValueFunction" visibility="private" isUnique="false"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-200J2dEeq5UMfZ1C8e7g" name="floorAreaSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-4C8J2dEeq5UMfZ1C8e7g" name="nbBedroomsSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-7GQJ2dEeq5UMfZ1C8e7g" name="nbSleepingSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q-87cJ2dEeq5UMfZ1C8e7g" name="nbBathroomsSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_Bz8J2dEeq5UMfZ1C8e7g" name="terraceSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_Bz8Z2dEeq5UMfZ1C8e7g" name="floorAreaTerraceSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_Bz8p2dEeq5UMfZ1C8e7g" name="wifiSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_DpIJ2dEeq5UMfZ1C8e7g" name="pricePerNightSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_FeUJ2dEeq5UMfZ1C8e7g" name="nbMinNightSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_HTgJ2dEeq5UMfZ1C8e7g" name="teleSubjectiveValueWeight" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_q_Lk8J2dEeq5UMfZ1C8e7g" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_q_P2YJ2dEeq5UMfZ1C8e7g" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(LinearApartmentValueFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_gVEJ2dEeq5UMfZ1C8e7g" name="LinearApartmentValueFunction" specification="_q_Uu4J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaValueFunction = new LinearValueFunction(0d, 0d);&#xD;
    this.nbBedroomsValueFunction = new LinearValueFunction(0d, 0d);&#xD;
    this.nbSleepingValueFunction = new LinearValueFunction(0d, 0d);&#xD;
    this.nbBathroomsValueFunction = new LinearValueFunction(0d, 0d);&#xD;
    this.terraceValueFunction = new BooleanValueFunction(false);&#xD;
    this.floorAreaTerraceValueFunction = new LinearValueFunction(0d, 0d);&#xD;
    this.wifiValueFunction = new BooleanValueFunction(false);&#xD;
    this.pricePerNightValueFunction = new ReversedLinearValueFunction(0d, 0d);&#xD;
    this.nbMinNightValueFunction = new ReversedLinearValueFunction(0d, 0d);&#xD;
    this.teleValueFunction = new BooleanValueFunction(false);&#xD;
    this.floorAreaSubjectiveValueWeight = 0.1;&#xD;
    this.nbBedroomsSubjectiveValueWeight = 0.1;&#xD;
    this.nbSleepingSubjectiveValueWeight = 0.1;&#xD;
    this.nbBathroomsSubjectiveValueWeight = 0.1;&#xD;
    this.terraceSubjectiveValueWeight = 0.1;&#xD;
    this.floorAreaTerraceSubjectiveValueWeight = 0.1;&#xD;
    this.wifiSubjectiveValueWeight = 0.1;&#xD;
    this.pricePerNightSubjectiveValueWeight = 0.1;&#xD;
    this.nbMinNightSubjectiveValueWeight = 0.1;&#xD;
    this.teleSubjectiveValueWeight = 0.1;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_oQ4J2dEeq5UMfZ1C8e7g" name="setFloorAreaValueFunction" specification="_q_l0oJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaValueFunction = checkNotNull(floorAreaValueFunction);&#xD;
    LOGGER.info(&quot;The floor area preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_siUJ2dEeq5UMfZ1C8e7g" name="setNbBedroomsValueFunction" specification="_q_rUMJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.nbBedroomsValueFunction = checkNotNull(nbBedroomsValueFunction);&#xD;
    LOGGER.info(&quot;The number of bedrooms preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_vloJ2dEeq5UMfZ1C8e7g" name="setNbSleepingValueFunction" specification="_q_tJYJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.nbSleepingValueFunction = checkNotNull(nbSleepingValueFunction);&#xD;
    LOGGER.info(&quot;The number of sleeping preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_0eIJ2dEeq5UMfZ1C8e7g" name="setNbBathroomsValueFunction" specification="_q_yB4J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.nbBathroomsValueFunction = checkNotNull(nbBathroomsValueFunction);&#xD;
    LOGGER.info(&quot;The number of bathrooms preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_q_6kwJ2dEeq5UMfZ1C8e7g" name="setTerraceValueFunction" specification="_q_1FMJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.terraceValueFunction = checkNotNull(terraceValueFunction);&#xD;
    LOGGER.info(&quot;The terrace preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAEVwJ2dEeq5UMfZ1C8e7g" name="setFloorAreaTerraceValueFunction" specification="_rAB5gJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.floorAreaTerraceValueFunction = checkNotNull(floorAreaTerraceValueFunction);&#xD;
    LOGGER.info(&quot;The floor area of the terrace preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAInMJ2dEeq5UMfZ1C8e7g" name="setWifiValueFunction" specification="_rAGyAJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.wifiValueFunction = checkNotNull(wifiValueFunction);&#xD;
    LOGGER.info(&quot;The wifi preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAP78J2dEeq5UMfZ1C8e7g" name="setPricePerNightValueFunction" specification="_rAM4oJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.pricePerNightValueFunction = checkNotNull(pricePerNightValueFunction);&#xD;
    LOGGER.info(&quot;The price per night preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rATmUZ2dEeq5UMfZ1C8e7g" name="setNbMinNightValueFunction" specification="_rARxIJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.nbMinNightValueFunction = checkNotNull(nbMinNightValueFunction);&#xD;
    LOGGER.info(&quot;The number of minimum night preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAWpoJ2dEeq5UMfZ1C8e7g" name="setTeleValueFunction" specification="_rAUNYJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    this.teleValueFunction = checkNotNull(teleValueFunction);&#xD;
    LOGGER.info(&quot;The tele preferencies has been set&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAZs8J2dEeq5UMfZ1C8e7g" name="setFloorAreaSubjectiveValueWeight" specification="_rAX3wJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(floorAreaSubjectiveValueWeight >= 0, &quot;The weight of the floor area cannot be negative&quot;);&#xD;
    this.floorAreaSubjectiveValueWeight = floorAreaSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The floor area weight has been set to {}&quot;, floorAreaSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAd-YJ2dEeq5UMfZ1C8e7g" name="setNbBedroomsSubjectiveValueWeight" specification="_rAbiIJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBedroomsSubjectiveValueWeight >= 0, &quot;The weight of the number of bedrooms cannot be negative&quot;);&#xD;
    this.nbBedroomsSubjectiveValueWeight = nbBedroomsSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of bedrooms weight has been set to {}&quot;, nbBedroomsSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAlTIJ2dEeq5UMfZ1C8e7g" name="setNbSleepingSubjectiveValueWeight" specification="_rAiP0J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbSleepingSubjectiveValueWeight >= 0, &quot;The weight of the sleeping cannot be negative&quot;);&#xD;
    this.nbSleepingSubjectiveValueWeight = nbSleepingSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of sleeping weight has been set to {}&quot;, nbSleepingSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rApkkJ2dEeq5UMfZ1C8e7g" name="setNbBathroomsSubjectiveValueWeight" specification="_rAnvYJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbBathroomsSubjectiveValueWeight >= 0, &quot;The weight of the number of bathrooms cannot be negative&quot;);&#xD;
    this.nbBathroomsSubjectiveValueWeight = nbBathroomsSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of bathrooms weight has been set to {}&quot;, nbBathroomsSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rAvrMJ2dEeq5UMfZ1C8e7g" name="setTerraceSubjectiveValueWeight" specification="_rAsn4J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(terraceSubjectiveValueWeight >= 0, &quot;The weight of the terrace cannot be negative&quot;);&#xD;
    this.terraceSubjectiveValueWeight = terraceSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The terrace weight has been set to {}&quot;, terraceSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rA5cMJ2dEeq5UMfZ1C8e7g" name="setFloorAreaTerraceSubjectiveValueWeight" specification="_rA0jsJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(floorAreaTerraceSubjectiveValueWeight >= 0, &quot;The weight of the floor area terrace cannot be negative&quot;);&#xD;
    this.floorAreaTerraceSubjectiveValueWeight = floorAreaTerraceSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The floor area of the terrace weight has been set to {}&quot;, floorAreaTerraceSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBAJ4J2dEeq5UMfZ1C8e7g" name="setWifiSubjectiveValueWeight" specification="_rA9GkJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(wifiSubjectiveValueWeight >= 0, &quot;The weight of the wifi cannot be negative&quot;);&#xD;
    this.wifiSubjectiveValueWeight = wifiSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The wifi weight has been set to {}&quot;, wifiSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBGQgJ2dEeq5UMfZ1C8e7g" name="setPricePerNightSubjectiveValueWeight" specification="_rBEbUJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(pricePerNightSubjectiveValueWeight >= 0, &quot;The weight of the price per night cannot be negative&quot;);&#xD;
    this.pricePerNightSubjectiveValueWeight = pricePerNightSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The price per night weight has been set to {}&quot;, pricePerNightSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBOMUJ2dEeq5UMfZ1C8e7g" name="setNbMinNightSubjectiveValueWeight" specification="_rBKh8J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(nbMinNightSubjectiveValueWeight >= 0, &quot;The weight of the minimum number of nights cannot be negative&quot;);&#xD;
    this.nbMinNightSubjectiveValueWeight = nbMinNightSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The number of minimum night weight has been set to {}&quot;, nbMinNightSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBTE0J2dEeq5UMfZ1C8e7g" name="setTeleSubjectiveValueWeight" specification="_rBRPoJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkArgument(teleSubjectiveValueWeight >= 0, &quot;The weight of the tele cannot be negative&quot;);&#xD;
    this.teleSubjectiveValueWeight = teleSubjectiveValueWeight;&#xD;
    LOGGER.info(&quot;The tele weight has been set to {}&quot;, teleSubjectiveValueWeight);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBiVYJ2dEeq5UMfZ1C8e7g" name="getSubjectiveValue" specification="_rBZLcJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    double floorAreaSubjectiveValue;&#xD;
    double nbBedroomsSubjectiveValue;&#xD;
    double nbSleepingSubjectiveValue;&#xD;
    double nbBathroomsSubjectiveValue;&#xD;
    double terraceSubjectiveValue;&#xD;
    double floorAreaTerraceSubjectiveValue;&#xD;
    double wifiSubjectiveValue;&#xD;
    double pricePerNightSubjectiveValue;&#xD;
    double nbMinNightSubjectiveValue;&#xD;
    double teleSubjectiveValue;&#xD;
    checkArgument(floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea()) >= 0 &amp;&amp; floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea()) &lt;= 1, &quot;The subjective value of floor area should be between 0 and 1&quot;);&#xD;
    floorAreaSubjectiveValue = floorAreaValueFunction.getSubjectiveValue(apart.getFloorArea());&#xD;
    LOGGER.info(&quot;The floor area subjective value has been set to {}&quot;, floorAreaSubjectiveValue);&#xD;
    checkArgument(nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms()) >= 0 &amp;&amp; nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms()) &lt;= 1, &quot;The subjective value of the number of bedrooms should be between 0 and 1&quot;);&#xD;
    nbBedroomsSubjectiveValue = nbBedroomsValueFunction.getSubjectiveValue((double) apart.getNbBedrooms());&#xD;
    LOGGER.info(&quot;The number of bedrooms subjective value has been set to {}&quot;, nbBedroomsSubjectiveValue);&#xD;
    checkArgument(nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping()) >= 0 &amp;&amp; nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping()) &lt;= 1, &quot;The subjective value of the number of sleeping should be between 0 and 1&quot;);&#xD;
    nbSleepingSubjectiveValue = nbSleepingValueFunction.getSubjectiveValue((double) apart.getNbSleeping());&#xD;
    LOGGER.info(&quot;The number of sleeping subjective value has been set to {}&quot;, nbSleepingSubjectiveValue);&#xD;
    checkArgument(nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms()) >= 0 &amp;&amp; nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms()) &lt;= 1, &quot;The subjective value of the number of bathrooms should be between 0 and 1&quot;);&#xD;
    nbBathroomsSubjectiveValue = nbBathroomsValueFunction.getSubjectiveValue((double) apart.getNbBathrooms());&#xD;
    LOGGER.info(&quot;The number of bathrooms subjective value has been set to {}&quot;, nbBathroomsSubjectiveValue);&#xD;
    checkArgument(terraceValueFunction.getSubjectiveValue(apart.getTerrace()) >= 0 &amp;&amp; terraceValueFunction.getSubjectiveValue(apart.getTerrace()) &lt;= 1, &quot;The subjective value of the terrace should be between 0 and 1&quot;);&#xD;
    terraceSubjectiveValue = terraceValueFunction.getSubjectiveValue(apart.getTerrace());&#xD;
    LOGGER.info(&quot;The terrace subjective value has been set to {}&quot;, terraceSubjectiveValue);&#xD;
    checkArgument(floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace()) >= 0 &amp;&amp; floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace()) &lt;= 1, &quot;The subjective value of the floor area of the terrace should be between 0 and 1&quot;);&#xD;
    floorAreaTerraceSubjectiveValue = floorAreaTerraceValueFunction.getSubjectiveValue(apart.getFloorAreaTerrace());&#xD;
    LOGGER.info(&quot;The floor area of the terrace subjective value has been set to {}&quot;, floorAreaTerraceSubjectiveValue);&#xD;
    checkArgument(wifiValueFunction.getSubjectiveValue(apart.getWifi()) >= 0 &amp;&amp; wifiValueFunction.getSubjectiveValue(apart.getWifi()) &lt;= 1, &quot;The subjective value of the wifi should be between 0 and 1&quot;);&#xD;
    wifiSubjectiveValue = wifiValueFunction.getSubjectiveValue(apart.getWifi());&#xD;
    LOGGER.info(&quot;The wifi subjective value has been set to {}&quot;, wifiSubjectiveValue);&#xD;
    checkArgument(pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight()) >= 0 &amp;&amp; pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight()) &lt;= 1, &quot;The subjective value of the price per night should be between 0 and 1&quot;);&#xD;
    pricePerNightSubjectiveValue = pricePerNightValueFunction.getSubjectiveValue(apart.getPricePerNight());&#xD;
    LOGGER.info(&quot;the price per night subjective value has been set to {}&quot;, pricePerNightSubjectiveValue);&#xD;
    checkArgument(nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight()) >= 0 &amp;&amp; nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight()) &lt;= 1, &quot;The subjective value of the minimum number of nights should be between 0 and 1&quot;);&#xD;
    nbMinNightSubjectiveValue = nbMinNightValueFunction.getSubjectiveValue((double) apart.getNbMinNight());&#xD;
    LOGGER.info(&quot;The minimum number of nights subjective value has been set to {}&quot;, nbMinNightSubjectiveValue);&#xD;
    checkArgument(teleValueFunction.getSubjectiveValue(apart.getTele()) >= 0 &amp;&amp; teleValueFunction.getSubjectiveValue(apart.getTele()) &lt;= 1, &quot;The subjective value of the presence of a tele should be between 0 and 1&quot;);&#xD;
    teleSubjectiveValue = teleValueFunction.getSubjectiveValue(apart.getTele());&#xD;
    LOGGER.info(&quot;the tele subjective value has been set to {}&quot;, teleSubjectiveValue);&#xD;
    return ((floorAreaSubjectiveValue * floorAreaSubjectiveValueWeight + nbBedroomsSubjectiveValue * nbBedroomsSubjectiveValueWeight + nbSleepingSubjectiveValue * nbSleepingSubjectiveValueWeight + nbBathroomsSubjectiveValue * nbBathroomsSubjectiveValueWeight + terraceSubjectiveValue * terraceSubjectiveValueWeight + floorAreaTerraceSubjectiveValue * floorAreaTerraceSubjectiveValueWeight + wifiSubjectiveValue * wifiSubjectiveValueWeight + pricePerNightSubjectiveValue * pricePerNightSubjectiveValueWeight + nbMinNightSubjectiveValue * nbMinNightSubjectiveValueWeight + teleSubjectiveValue * teleSubjectiveValueWeight) / (floorAreaSubjectiveValueWeight + nbBedroomsSubjectiveValueWeight + nbSleepingSubjectiveValueWeight + nbBathroomsSubjectiveValueWeight + terraceSubjectiveValueWeight + floorAreaTerraceSubjectiveValueWeight + wifiSubjectiveValueWeight + pricePerNightSubjectiveValueWeight + nbMinNightSubjectiveValueWeight + teleSubjectiveValueWeight));&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rBpDEJ2dEeq5UMfZ1C8e7g" name="getRandomApartmentValueFunction" specification="_rBl_wJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    Random random = new Random();&#xD;
    LinearApartmentValueFunction apartValueFunction = new LinearApartmentValueFunction();&#xD;
    int floorAreaEndBound = random.nextInt(80) + 21;&#xD;
    boolean terraceEndBound = (random.nextInt(2) == 1);&#xD;
    int floorAreaTerraceEndBound = random.nextInt(80) + 21;&#xD;
    boolean wifiEndBound = (random.nextInt(2) == 1);&#xD;
    int pricePerNightEndBound = random.nextInt(180) + 21;&#xD;
    int nbMinNightEndBound = random.nextInt(7) + 3;&#xD;
    boolean teleEndBound = (random.nextInt(2) == 1);&#xD;
    int floorAreaStartBound = random.nextInt(floorAreaEndBound);&#xD;
    int floorAreaTerraceStartBound = random.nextInt(floorAreaTerraceEndBound);&#xD;
    int pricePerNightStartBound = random.nextInt(pricePerNightEndBound);&#xD;
    int nbMinNightStartBound = random.nextInt(nbMinNightEndBound);&#xD;
    apartValueFunction.setFloorAreaValueFunction(new LinearValueFunction(floorAreaStartBound, floorAreaEndBound));&#xD;
    apartValueFunction.setNbBedroomsValueFunction(new LinearValueFunction(4d, 6d));&#xD;
    apartValueFunction.setNbSleepingValueFunction(new LinearValueFunction(4d, 6d));&#xD;
    apartValueFunction.setNbBathroomsValueFunction(new LinearValueFunction(1d, 3d));&#xD;
    apartValueFunction.setTerraceValueFunction(new BooleanValueFunction(terraceEndBound));&#xD;
    apartValueFunction.setFloorAreaTerraceValueFunction(new LinearValueFunction(floorAreaTerraceStartBound, floorAreaTerraceEndBound));&#xD;
    apartValueFunction.setWifiValueFunction(new BooleanValueFunction(wifiEndBound));&#xD;
    apartValueFunction.setPricePerNightValueFunction(new ReversedLinearValueFunction((double) pricePerNightStartBound, (double) pricePerNightEndBound));&#xD;
    apartValueFunction.setNbMinNightValueFunction(new ReversedLinearValueFunction(nbMinNightStartBound, nbMinNightEndBound));&#xD;
    apartValueFunction.setTeleValueFunction(new BooleanValueFunction(teleEndBound));&#xD;
    List&lt;Double> weightRange = RandomRange.weightRangeOfSum(1d, 10);&#xD;
    LOGGER.info(&quot;Weight has been set to : {}&quot;, weightRange);&#xD;
    apartValueFunction.floorAreaSubjectiveValueWeight = weightRange.get(0);&#xD;
    apartValueFunction.nbBedroomsSubjectiveValueWeight = weightRange.get(1);&#xD;
    apartValueFunction.nbSleepingSubjectiveValueWeight = weightRange.get(2);&#xD;
    apartValueFunction.nbBathroomsSubjectiveValueWeight = weightRange.get(3);&#xD;
    apartValueFunction.terraceSubjectiveValueWeight = weightRange.get(4);&#xD;
    apartValueFunction.floorAreaTerraceSubjectiveValueWeight = weightRange.get(5);&#xD;
    apartValueFunction.wifiSubjectiveValueWeight = weightRange.get(6);&#xD;
    apartValueFunction.pricePerNightSubjectiveValueWeight = weightRange.get(7);&#xD;
    apartValueFunction.nbMinNightSubjectiveValueWeight = weightRange.get(8);&#xD;
    apartValueFunction.teleSubjectiveValueWeight = weightRange.get(9);&#xD;
    return apartValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rB5hwJ2dEeq5UMfZ1C8e7g" name="adaptWeight" specification="_rBy0EJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    checkNotNull(lessImportant, &quot;This criterion cannot be null&quot;);&#xD;
    checkNotNull(moreImportant, &quot;This criterion cannot be null&quot;);&#xD;
    checkArgument(!Objects.equals(moreImportant, lessImportant), &quot;Both fields are the same.&quot;);&#xD;
    LinearApartmentValueFunction avf = cloneAVF();&#xD;
    double weightSum = avf.getSubjectiveValueWeight(moreImportant) + avf.getSubjectiveValueWeight(lessImportant);&#xD;
    avf = avf.setSubjectiveValueWeight(moreImportant, 9 * weightSum / 10);&#xD;
    avf = avf.setSubjectiveValueWeight(lessImportant, weightSum / 10);&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCBdkJ2dEeq5UMfZ1C8e7g" name="getSubjectiveValueWeight" specification="_rB8lEJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    switch(awt) {&#xD;
        case TELE:&#xD;
            return teleSubjectiveValueWeight;&#xD;
        case TERRACE:&#xD;
            return terraceSubjectiveValueWeight;&#xD;
        case WIFI:&#xD;
            return wifiSubjectiveValueWeight;&#xD;
        case FLOOR_AREA:&#xD;
            return floorAreaSubjectiveValueWeight;&#xD;
        case FLOOR_AREA_TERRACE:&#xD;
            return floorAreaTerraceSubjectiveValueWeight;&#xD;
        case NB_BATHROOMS:&#xD;
            return nbBathroomsSubjectiveValueWeight;&#xD;
        case NB_BEDROOMS:&#xD;
            return nbBedroomsSubjectiveValueWeight;&#xD;
        case NB_SLEEPING:&#xD;
            return nbSleepingSubjectiveValueWeight;&#xD;
        case NB_MIN_NIGHT:&#xD;
            return nbMinNightSubjectiveValueWeight;&#xD;
        case PRICE_PER_NIGHT:&#xD;
            return pricePerNightSubjectiveValueWeight;&#xD;
        default:&#xD;
            throw new IllegalArgumentException();&#xD;
    }&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCOR4J2dEeq5UMfZ1C8e7g" name="setSubjectiveValueWeight" specification="_rCCrsJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    LinearApartmentValueFunction avf = cloneAVF();&#xD;
    switch(awt) {&#xD;
        case TELE:&#xD;
            avf.setTeleSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case TERRACE:&#xD;
            avf.setTerraceSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case WIFI:&#xD;
            avf.setWifiSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case FLOOR_AREA:&#xD;
            avf.setFloorAreaSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case FLOOR_AREA_TERRACE:&#xD;
            avf.setFloorAreaTerraceSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_BATHROOMS:&#xD;
            avf.setNbBathroomsSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_BEDROOMS:&#xD;
            avf.setNbBedroomsSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_SLEEPING:&#xD;
            avf.setNbSleepingSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case NB_MIN_NIGHT:&#xD;
            avf.setNbMinNightSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        case PRICE_PER_NIGHT:&#xD;
            avf.setPricePerNightSubjectiveValueWeight(value);&#xD;
            break;&#xD;
        default:&#xD;
            throw new IllegalArgumentException();&#xD;
    }&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCR8QJ2dEeq5UMfZ1C8e7g" name="cloneAVF" specification="_rCQHEJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    LinearApartmentValueFunction avf = new LinearApartmentValueFunction();&#xD;
    avf.setFloorAreaValueFunction(this.floorAreaValueFunction);&#xD;
    avf.setNbBedroomsValueFunction(this.nbBedroomsValueFunction);&#xD;
    avf.setNbSleepingValueFunction(this.nbSleepingValueFunction);&#xD;
    avf.setNbBathroomsValueFunction(this.nbBathroomsValueFunction);&#xD;
    avf.setTerraceValueFunction(this.terraceValueFunction);&#xD;
    avf.setFloorAreaTerraceValueFunction(this.floorAreaTerraceValueFunction);&#xD;
    avf.setWifiValueFunction(this.wifiValueFunction);&#xD;
    avf.setPricePerNightValueFunction(this.pricePerNightValueFunction);&#xD;
    avf.setNbMinNightValueFunction(this.nbMinNightValueFunction);&#xD;
    avf.setTeleValueFunction(this.teleValueFunction);&#xD;
    avf.floorAreaSubjectiveValueWeight = this.floorAreaSubjectiveValueWeight;&#xD;
    avf.nbBedroomsSubjectiveValueWeight = this.nbBedroomsSubjectiveValueWeight;&#xD;
    avf.nbSleepingSubjectiveValueWeight = this.nbSleepingSubjectiveValueWeight;&#xD;
    avf.nbBathroomsSubjectiveValueWeight = this.nbBathroomsSubjectiveValueWeight;&#xD;
    avf.terraceSubjectiveValueWeight = this.terraceSubjectiveValueWeight;&#xD;
    avf.floorAreaTerraceSubjectiveValueWeight = this.floorAreaTerraceSubjectiveValueWeight;&#xD;
    avf.wifiSubjectiveValueWeight = this.wifiSubjectiveValueWeight;&#xD;
    avf.pricePerNightSubjectiveValueWeight = this.pricePerNightSubjectiveValueWeight;&#xD;
    avf.nbMinNightSubjectiveValueWeight = this.nbMinNightSubjectiveValueWeight;&#xD;
    avf.teleSubjectiveValueWeight = this.teleSubjectiveValueWeight;&#xD;
    return avf;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCU_kJ2dEeq5UMfZ1C8e7g" name="getFloorAreaSubjectiveValueWeight" specification="_rCTKYJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.floorAreaSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCXb0J2dEeq5UMfZ1C8e7g" name="getFloorAreaValueFunction" specification="_rCWNsJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.floorAreaValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCcUUJ2dEeq5UMfZ1C8e7g" name="getFloorAreaTerraceSubjectiveValueWeight" specification="_rCafIJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.floorAreaTerraceSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCf-sJ2dEeq5UMfZ1C8e7g" name="getFloorAreaTerraceValueFunction" specification="_rCeJgJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.floorAreaTerraceValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCjpEJ2dEeq5UMfZ1C8e7g" name="getNbBathroomsSubjectiveValueWeight" specification="_rChz4J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbBathroomsSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCohkJ2dEeq5UMfZ1C8e7g" name="getNbBathroomsValueFunction" specification="_rCmsYJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbBathroomsValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCszAJ2dEeq5UMfZ1C8e7g" name="getNbBedroomsSubjectiveValueWeight" specification="_rCpvsJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbBedroomsSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC0u0J2dEeq5UMfZ1C8e7g" name="getNbBedroomsValueFunction" specification="_rCv2UJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbBedroomsValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC61cJ2dEeq5UMfZ1C8e7g" name="getNbMinNightSubjectiveValueWeight" specification="_rC4ZMJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbMinNightSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC_t8J2dEeq5UMfZ1C8e7g" name="getNbMinNightValueFunction" specification="_rC8qoJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbMinNightValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDF0kJ2dEeq5UMfZ1C8e7g" name="getNbSleepingSubjectiveValueWeight" specification="_rDCKMJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbSleepingSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDNJUJ2dEeq5UMfZ1C8e7g" name="getNbSleepingValueFunction" specification="_rDKGAJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.nbSleepingValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDRawJ2dEeq5UMfZ1C8e7g" name="getPricePerNightSubjectiveValueWeight" specification="_rDOXcJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.pricePerNightSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDVsMJ2dEeq5UMfZ1C8e7g" name="getPricePerNightValueFunction" specification="_rDTP8J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.pricePerNightValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDbLwZ2dEeq5UMfZ1C8e7g" name="getTeleSubjectiveValueWeight" specification="_rDZ9oJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.teleSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDgEQJ2dEeq5UMfZ1C8e7g" name="getTeleValueFunction" specification="_rDdA8J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.teleValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDlj0J2dEeq5UMfZ1C8e7g" name="getTerraceSubjectiveValueWeight" specification="_rDjuoJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.terraceSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDrqcJ2dEeq5UMfZ1C8e7g" name="getTerraceValueFunction" specification="_rDmx8J2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.terraceValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rDy_MJ2dEeq5UMfZ1C8e7g" name="getWifiSubjectiveValueWeight" specification="_rDxKAJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.wifiSubjectiveValueWeight;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rD33sJ2dEeq5UMfZ1C8e7g" name="getWifiValueFunction" specification="_rD2CgJ2dEeq5UMfZ1C8e7g">
            <language>JAVA</language>
            <body>&#xD;
    return this.wifiValueFunction;&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_Uu4J2dEeq5UMfZ1C8e7g" name="LinearApartmentValueFunction" visibility="public" method="_q_gVEJ2dEeq5UMfZ1C8e7g"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_l0oJ2dEeq5UMfZ1C8e7g" name="setFloorAreaValueFunction" visibility="public" method="_q_oQ4J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_q_nCwJ2dEeq5UMfZ1C8e7g" name="floorAreaValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_rUMJ2dEeq5UMfZ1C8e7g" name="setNbBedroomsValueFunction" visibility="public" method="_q_siUJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_q_r7QJ2dEeq5UMfZ1C8e7g" name="nbBedroomsValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_tJYJ2dEeq5UMfZ1C8e7g" name="setNbSleepingValueFunction" visibility="public" method="_q_vloJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_q_u-kJ2dEeq5UMfZ1C8e7g" name="nbSleepingValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_yB4J2dEeq5UMfZ1C8e7g" name="setNbBathroomsValueFunction" visibility="public" method="_q_0eIJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_q_zQAJ2dEeq5UMfZ1C8e7g" name="nbBathroomsValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_q_1FMJ2dEeq5UMfZ1C8e7g" name="setTerraceValueFunction" visibility="public" method="_q_6kwJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_q_4vkJ2dEeq5UMfZ1C8e7g" name="terraceValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAB5gJ2dEeq5UMfZ1C8e7g" name="setFloorAreaTerraceValueFunction" visibility="public" method="_rAEVwJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rADHoJ2dEeq5UMfZ1C8e7g" name="floorAreaTerraceValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAGyAJ2dEeq5UMfZ1C8e7g" name="setWifiValueFunction" visibility="public" method="_rAInMJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAHZEJ2dEeq5UMfZ1C8e7g" name="wifiValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAM4oJ2dEeq5UMfZ1C8e7g" name="setPricePerNightValueFunction" visibility="public" method="_rAP78J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAOGwJ2dEeq5UMfZ1C8e7g" name="pricePerNightValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rARxIJ2dEeq5UMfZ1C8e7g" name="setNbMinNightValueFunction" visibility="public" method="_rATmUZ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rATmUJ2dEeq5UMfZ1C8e7g" name="nbMinNightValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAUNYJ2dEeq5UMfZ1C8e7g" name="setTeleValueFunction" visibility="public" method="_rAWpoJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAVbgJ2dEeq5UMfZ1C8e7g" name="teleValueFunction"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAX3wJ2dEeq5UMfZ1C8e7g" name="setFloorAreaSubjectiveValueWeight" visibility="public" method="_rAZs8J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAZF4J2dEeq5UMfZ1C8e7g" name="floorAreaSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAbiIJ2dEeq5UMfZ1C8e7g" name="setNbBedroomsSubjectiveValueWeight" visibility="public" method="_rAd-YJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAcwQJ2dEeq5UMfZ1C8e7g" name="nbBedroomsSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAiP0J2dEeq5UMfZ1C8e7g" name="setNbSleepingSubjectiveValueWeight" visibility="public" method="_rAlTIJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAjd8J2dEeq5UMfZ1C8e7g" name="nbSleepingSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAnvYJ2dEeq5UMfZ1C8e7g" name="setNbBathroomsSubjectiveValueWeight" visibility="public" method="_rApkkJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAo9gJ2dEeq5UMfZ1C8e7g" name="nbBathroomsSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rAsn4J2dEeq5UMfZ1C8e7g" name="setTerraceSubjectiveValueWeight" visibility="public" method="_rAvrMJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rAvEIJ2dEeq5UMfZ1C8e7g" name="terraceSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rA0jsJ2dEeq5UMfZ1C8e7g" name="setFloorAreaTerraceSubjectiveValueWeight" visibility="public" method="_rA5cMJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rA3nAJ2dEeq5UMfZ1C8e7g" name="floorAreaTerraceSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rA9GkJ2dEeq5UMfZ1C8e7g" name="setWifiSubjectiveValueWeight" visibility="public" method="_rBAJ4J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rA-7wJ2dEeq5UMfZ1C8e7g" name="wifiSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBEbUJ2dEeq5UMfZ1C8e7g" name="setPricePerNightSubjectiveValueWeight" visibility="public" method="_rBGQgJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBFCYJ2dEeq5UMfZ1C8e7g" name="pricePerNightSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBKh8J2dEeq5UMfZ1C8e7g" name="setNbMinNightSubjectiveValueWeight" visibility="public" method="_rBOMUJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBM-MJ2dEeq5UMfZ1C8e7g" name="nbMinNightSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBRPoJ2dEeq5UMfZ1C8e7g" name="setTeleSubjectiveValueWeight" visibility="public" method="_rBTE0J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBR2sJ2dEeq5UMfZ1C8e7g" name="teleSubjectiveValueWeight">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBZLcJ2dEeq5UMfZ1C8e7g" name="getSubjectiveValue" visibility="public" method="_rBiVYJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBZygJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBbnsJ2dEeq5UMfZ1C8e7g" name="apart" type="_rBU6AJ2dEeq5UMfZ1C8e7g"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBl_wJ2dEeq5UMfZ1C8e7g" name="getRandomApartmentValueFunction" visibility="public" isStatic="true" method="_rBpDEJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rBnN4J2dEeq5UMfZ1C8e7g" type="_q-Zh0J2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rBy0EJ2dEeq5UMfZ1C8e7g" name="adaptWeight" visibility="public" method="_rB5hwJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rB1QUJ2dEeq5UMfZ1C8e7g" type="_q-Zh0J2dEeq5UMfZ1C8e7g" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rB3skJ2dEeq5UMfZ1C8e7g" name="moreImportant"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rB46sJ2dEeq5UMfZ1C8e7g" name="lessImportant"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rB8lEJ2dEeq5UMfZ1C8e7g" name="getSubjectiveValueWeight" visibility="private" method="_rCBdkJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rB9zMJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rB_BUJ2dEeq5UMfZ1C8e7g" name="awt"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCCrsJ2dEeq5UMfZ1C8e7g" name="setSubjectiveValueWeight" visibility="public" method="_rCOR4J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCFvAJ2dEeq5UMfZ1C8e7g" type="_q-Zh0J2dEeq5UMfZ1C8e7g" direction="return"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCKngJ2dEeq5UMfZ1C8e7g" name="awt"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCL1oJ2dEeq5UMfZ1C8e7g" name="value">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCQHEJ2dEeq5UMfZ1C8e7g" name="cloneAVF" visibility="private" method="_rCR8QJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCQuIJ2dEeq5UMfZ1C8e7g" type="_q-Zh0J2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCTKYJ2dEeq5UMfZ1C8e7g" name="getFloorAreaSubjectiveValueWeight" visibility="public" method="_rCU_kJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCTxcJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCWNsJ2dEeq5UMfZ1C8e7g" name="getFloorAreaValueFunction" visibility="public" method="_rCXb0J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCW0wJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCafIJ2dEeq5UMfZ1C8e7g" name="getFloorAreaTerraceSubjectiveValueWeight" visibility="public" method="_rCcUUJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCbGMJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCeJgJ2dEeq5UMfZ1C8e7g" name="getFloorAreaTerraceValueFunction" visibility="public" method="_rCf-sJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCfXoJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rChz4J2dEeq5UMfZ1C8e7g" name="getNbBathroomsSubjectiveValueWeight" visibility="public" method="_rCjpEJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCia8J2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCmsYJ2dEeq5UMfZ1C8e7g" name="getNbBathroomsValueFunction" visibility="public" method="_rCohkJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCnTcJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCpvsJ2dEeq5UMfZ1C8e7g" name="getNbBedroomsSubjectiveValueWeight" visibility="public" method="_rCszAJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCqWwJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rCv2UJ2dEeq5UMfZ1C8e7g" name="getNbBedroomsValueFunction" visibility="public" method="_rC0u0J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rCy5oJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rC4ZMJ2dEeq5UMfZ1C8e7g" name="getNbMinNightSubjectiveValueWeight" visibility="public" method="_rC61cJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rC5nUJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rC8qoJ2dEeq5UMfZ1C8e7g" name="getNbMinNightValueFunction" visibility="public" method="_rC_t8J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rC_G4J2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDCKMJ2dEeq5UMfZ1C8e7g" name="getNbSleepingSubjectiveValueWeight" visibility="public" method="_rDF0kJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDCxQJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDKGAJ2dEeq5UMfZ1C8e7g" name="getNbSleepingValueFunction" visibility="public" method="_rDNJUJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDLUIJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDOXcJ2dEeq5UMfZ1C8e7g" name="getPricePerNightSubjectiveValueWeight" visibility="public" method="_rDRawJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDO-gJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDTP8J2dEeq5UMfZ1C8e7g" name="getPricePerNightValueFunction" visibility="public" method="_rDVsMJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDUeEJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDZ9oJ2dEeq5UMfZ1C8e7g" name="getTeleSubjectiveValueWeight" visibility="public" method="_rDbLwZ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDbLwJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDdA8J2dEeq5UMfZ1C8e7g" name="getTeleValueFunction" visibility="public" method="_rDgEQJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDfdMJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDjuoJ2dEeq5UMfZ1C8e7g" name="getTerraceSubjectiveValueWeight" visibility="public" method="_rDlj0J2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDkVsJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDmx8J2dEeq5UMfZ1C8e7g" name="getTerraceValueFunction" visibility="public" method="_rDrqcJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDpOMJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rDxKAJ2dEeq5UMfZ1C8e7g" name="getWifiSubjectiveValueWeight" visibility="public" method="_rDy_MJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rDyYIJ2dEeq5UMfZ1C8e7g" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_rD2CgJ2dEeq5UMfZ1C8e7g" name="getWifiValueFunction" visibility="public" method="_rD33sJ2dEeq5UMfZ1C8e7g">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rD2pkJ2dEeq5UMfZ1C8e7g" direction="return"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_K7CHoJjqEeqYCK4Btw7kWQ" client="_d2M6YF_BEeqAAb4u4HLI7w" supplier="_QgD_sF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_B48moJjrEeqYCK4Btw7kWQ" client="_d2M6YF_BEeqAAb4u4HLI7w" supplier="_1QqroF-_EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Package" xmi:id="_tDXmIJpvEeqmHpvW7B5p3g" name="profile">
          <packagedElement xmi:type="uml:Class" xmi:id="_mJBTIIY3Eeqw9PFqD2CRLA" name="ProfileManager" isAbstract="true">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_-KERUIY3Eeqw9PFqD2CRLA" name="profiles" visibility="private"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_5Lu5oIY4Eeqw9PFqD2CRLA" name="profileType" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EEnumerator"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_rfqSkpwuEeqGkeU796yVmw" name="profile" type="_sCMNUJwtEeqGkeU796yVmw" aggregation="composite" association="_rfnPQJwuEeqGkeU796yVmw"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_a32DYJw8EeqGkeU796yVmw" name="initialized" visibility="private" isStatic="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_iqdrIJw8EeqGkeU796yVmw" name="init" visibility="private" isStatic="true" isAbstract="true"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_uY7dYJw8EeqGkeU796yVmw" name="getProfile" isStatic="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_zwlekJw8EeqGkeU796yVmw" name="type" type="_G02nMJpwEeqmHpvW7B5p3g"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration" xmi:id="_G02nMJpwEeqmHpvW7B5p3g" name="ProfileType">
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_7Xp6cJw4EeqGkeU796yVmw" name="STUDENT"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_BlDQ0Jw5EeqGkeU796yVmw" name="FAMILY"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_96S2UJw4EeqGkeU796yVmw" name="COUPLE"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Dependency" xmi:id="_PN-OQJpwEeqmHpvW7B5p3g" client="_mJBTIIY3Eeqw9PFqD2CRLA" supplier="_G02nMJpwEeqmHpvW7B5p3g"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_LbxAkJpzEeqmHpvW7B5p3g" name="Question">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_oF7JoJy9Eeqv_texJXdVtQ" name="question" visibility="private" type="_jCLbwJp0EeqmHpvW7B5p3g"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_MYDCcJy_Eeqv_texJXdVtQ" name="questiontype" type="_jCLbwJp0EeqmHpvW7B5p3g" association="_MX2OIJy_Eeqv_texJXdVtQ">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MYDCcZy_Eeqv_texJXdVtQ"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MYDpgJy_Eeqv_texJXdVtQ" value="*"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_30oowJy-Eeqv_texJXdVtQ" name="getChoices"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_DsoKcJy_Eeqv_texJXdVtQ" name="resolve_" isStatic="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_DsoKcZy_Eeqv_texJXdVtQ" name="avf" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" effect="update"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_DsoKcpy_Eeqv_texJXdVtQ" name="numAnswers" visibility="public" effect="read">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration" xmi:id="_jCLbwJp0EeqmHpvW7B5p3g" name="QuestionType">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_bPNP8Jw7EeqGkeU796yVmw" name="questionFormat" visibility="private" isReadOnly="true"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_yptykJw7EeqGkeU796yVmw" name="QuestionType" visibility="public">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_-7GrsJw7EeqGkeU796yVmw" name="value">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_F57fAJw8EeqGkeU796yVmw" name="getQuestionFormat" visibility="public" isStatic="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_F57fAZw8EeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_dLyt4Jw6EeqGkeU796yVmw" name="PREF_PRICE_AREA"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_oVSK0Jw6EeqGkeU796yVmw" name="PREF_BED_TERR"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_618poJw6EeqGkeU796yVmw" name="PREF_BATH_WIFI"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_-VPbAJw6EeqGkeU796yVmw" name="PREF_AREA_PRICE_FEATRS"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_sCMNUJwtEeqGkeU796yVmw" name="Profile" visibility="public">
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCPQoJwtEeqGkeU796yVmw" name="minFloorArea" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCP3sJwtEeqGkeU796yVmw" name="minNbBedrooms" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCP3sZwtEeqGkeU796yVmw" name="minNbSleeping" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCRs4JwtEeqGkeU796yVmw" name="minNbBathroom" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCST8JwtEeqGkeU796yVmw" name="minNbMinNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCS7AJwtEeqGkeU796yVmw" name="maxFloorArea" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCS7AZwtEeqGkeU796yVmw" name="maxNbBedrooms" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCUJIJwtEeqGkeU796yVmw" name="maxNbSleeping" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCUwMJwtEeqGkeU796yVmw" name="maxNbBathroom" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCUwMZwtEeqGkeU796yVmw" name="maxNbMinNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcE8JwtEeqGkeU796yVmw" name="minPricePerNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcE8ZwtEeqGkeU796yVmw" name="maxPricePerNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcsAJwtEeqGkeU796yVmw" name="mustWifi" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcsAZwtEeqGkeU796yVmw" name="mustTele" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcsApwtEeqGkeU796yVmw" name="mustTerrace" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCcsA5wtEeqGkeU796yVmw" name="weightFloorArea" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCdTEJwtEeqGkeU796yVmw" name="weightNbBedrooms" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCehMJwtEeqGkeU796yVmw" name="weightNbSleeping" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCehMZwtEeqGkeU796yVmw" name="weightNbBathroom" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCfIQJwtEeqGkeU796yVmw" name="weightNbMinNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCg9cJwtEeqGkeU796yVmw" name="weightPricePerNight" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCiyoJwtEeqGkeU796yVmw" name="weightWifi" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCjZsJwtEeqGkeU796yVmw" name="weightTele" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sCkAwJwtEeqGkeU796yVmw" name="weightTerrace" visibility="private" isUnique="false">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_sy-7opwuEeqGkeU796yVmw" name="question" type="_LbxAkJpzEeqmHpvW7B5p3g" aggregation="composite" association="_sy-UkJwuEeqGkeU796yVmw">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sy-7o5wuEeqGkeU796yVmw"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sy_isJwuEeqGkeU796yVmw" value="*"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_xlq7UJ2eEeq5UMfZ1C8e7g" name="linearapartmentvaluefunction" type="_q-Zh0J2dEeq5UMfZ1C8e7g" association="_xllbwJ2eEeq5UMfZ1C8e7g">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xlriYJ2eEeq5UMfZ1C8e7g"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xlriYZ2eEeq5UMfZ1C8e7g" value="1"/>
            </ownedAttribute>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sCpgUJwtEeqGkeU796yVmw" name="Profile" specification="_sCkAwZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDCh45wtEeqGkeU796yVmw" name="getMinFloorArea" specification="_sDCh4ZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minFloorArea;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDDI8pwtEeqGkeU796yVmw" name="getMinNbBedrooms" specification="_sDDI8JwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minNbBedrooms;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDDwAZwtEeqGkeU796yVmw" name="getMinNbSleeping" specification="_sDDI85wtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minNbSleeping;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDGMQJwtEeqGkeU796yVmw" name="getMinNbBathroom" specification="_sDFlMJwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minNbBathroom;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDGzUJwtEeqGkeU796yVmw" name="getMinNbMinNight" specification="_sDGMQZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minNbMinNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDGzU5wtEeqGkeU796yVmw" name="getMaxPricePerNight" specification="_sDGzUZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxPricePerNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDHaYpwtEeqGkeU796yVmw" name="isMustWifi" specification="_sDHaYJwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return mustWifi;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDIBcZwtEeqGkeU796yVmw" name="isMustTele" specification="_sDHaY5wtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return mustTele;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDIogJwtEeqGkeU796yVmw" name="isMustTerrace" specification="_sDIBcpwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return mustTerrace;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDJPkJwtEeqGkeU796yVmw" name="getMaxFloorArea" specification="_sDIogZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxFloorArea;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDKdsJwtEeqGkeU796yVmw" name="getMaxNbBedrooms" specification="_sDJPkZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxNbBedrooms;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDMS4JwtEeqGkeU796yVmw" name="getMaxNbSleeping" specification="_sDLr0JwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxNbSleeping;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDM58JwtEeqGkeU796yVmw" name="getMaxNbBathroom" specification="_sDMS4ZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxNbBathroom;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDNhAJwtEeqGkeU796yVmw" name="getMaxNbMinNight" specification="_sDM58ZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return maxNbMinNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDP9QJwtEeqGkeU796yVmw" name="getMinPricePerNight" specification="_sDNhAZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return minPricePerNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDRLYJwtEeqGkeU796yVmw" name="getWeightFloorArea" specification="_sDQkUJwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightFloorArea;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDRycZwtEeqGkeU796yVmw" name="getWeightNbBedrooms" specification="_sDRLYZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightNbBedrooms;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDSZgZwtEeqGkeU796yVmw" name="getWeightNbSleeping" specification="_sDRycpwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightNbSleeping;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDTAkJwtEeqGkeU796yVmw" name="getWeightNbBathroom" specification="_sDSZgpwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightNbBathroom;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDTnoJwtEeqGkeU796yVmw" name="getWeightNbMinNight" specification="_sDTAkZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightNbMinNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDZuQJwtEeqGkeU796yVmw" name="getWeightPricePerNight" specification="_sDTnoZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightPricePerNight;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDaVUZwtEeqGkeU796yVmw" name="getWeightWifi" specification="_sDZuQZwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightWifi;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDa8YZwtEeqGkeU796yVmw" name="getWeightTele" specification="_sDaVUpwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightTele;&#xD;
</body>
            </ownedBehavior>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDbjcJwtEeqGkeU796yVmw" name="getWeightTerrace" specification="_sDa8YpwtEeqGkeU796yVmw">
              <language>JAVA</language>
              <body>&#xD;
    return weightTerrace;&#xD;
</body>
            </ownedBehavior>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sCkAwZwtEeqGkeU796yVmw" name="Profile" visibility="private" method="_sCpgUJwtEeqGkeU796yVmw"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDCh4ZwtEeqGkeU796yVmw" name="getMinFloorArea" visibility="public" method="_sDCh45wtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDCh4pwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDDI8JwtEeqGkeU796yVmw" name="getMinNbBedrooms" visibility="public" method="_sDDI8pwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDDI8ZwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDDI85wtEeqGkeU796yVmw" name="getMinNbSleeping" visibility="public" method="_sDDwAZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDDwAJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDFlMJwtEeqGkeU796yVmw" name="getMinNbBathroom" visibility="public" method="_sDGMQJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDFlMZwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDGMQZwtEeqGkeU796yVmw" name="getMinNbMinNight" visibility="public" method="_sDGzUJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDGMQpwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDGzUZwtEeqGkeU796yVmw" name="getMaxPricePerNight" visibility="public" method="_sDGzU5wtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDGzUpwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDHaYJwtEeqGkeU796yVmw" name="isMustWifi" visibility="public" method="_sDHaYpwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDHaYZwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDHaY5wtEeqGkeU796yVmw" name="isMustTele" visibility="public" method="_sDIBcZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDIBcJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDIBcpwtEeqGkeU796yVmw" name="isMustTerrace" visibility="public" method="_sDIogJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDIBc5wtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDIogZwtEeqGkeU796yVmw" name="getMaxFloorArea" visibility="public" method="_sDJPkJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDIogpwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDJPkZwtEeqGkeU796yVmw" name="getMaxNbBedrooms" visibility="public" method="_sDKdsJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDJPkpwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDLr0JwtEeqGkeU796yVmw" name="getMaxNbSleeping" visibility="public" method="_sDMS4JwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDLr0ZwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDMS4ZwtEeqGkeU796yVmw" name="getMaxNbBathroom" visibility="public" method="_sDM58JwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDMS4pwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDM58ZwtEeqGkeU796yVmw" name="getMaxNbMinNight" visibility="public" method="_sDNhAJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDM58pwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDNhAZwtEeqGkeU796yVmw" name="getMinPricePerNight" visibility="public" method="_sDP9QJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDOvIJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDQkUJwtEeqGkeU796yVmw" name="getWeightFloorArea" visibility="public" method="_sDRLYJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDQkUZwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDRLYZwtEeqGkeU796yVmw" name="getWeightNbBedrooms" visibility="public" method="_sDRycZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDRycJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDRycpwtEeqGkeU796yVmw" name="getWeightNbSleeping" visibility="public" method="_sDSZgZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDSZgJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDSZgpwtEeqGkeU796yVmw" name="getWeightNbBathroom" visibility="public" method="_sDTAkJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDSZg5wtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDTAkZwtEeqGkeU796yVmw" name="getWeightNbMinNight" visibility="public" method="_sDTnoJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDTAkpwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDTnoZwtEeqGkeU796yVmw" name="getWeightPricePerNight" visibility="public" method="_sDZuQJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDUOsJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDZuQZwtEeqGkeU796yVmw" name="getWeightWifi" visibility="public" method="_sDaVUZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDaVUJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDaVUpwtEeqGkeU796yVmw" name="getWeightTele" visibility="public" method="_sDa8YZwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDa8YJwtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_sDa8YpwtEeqGkeU796yVmw" name="getWeightTerrace" visibility="public" method="_sDbjcJwtEeqGkeU796yVmw">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDa8Y5wtEeqGkeU796yVmw" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_XcXrgJy_Eeqv_texJXdVtQ" name="getQuestions">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_cF4NQJy_Eeqv_texJXdVtQ" name="questions" visibility="public" direction="return" effect="create">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EEList"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_je43MJ04EeqrpIrBsKzVRw" name="toAVF">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_oq0JgJ04EeqrpIrBsKzVRw" name="builtAVF" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return" effect="create"/>
            </ownedOperation>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_sCqHYJwtEeqGkeU796yVmw" name="Builder" visibility="public">
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCu_4ZwtEeqGkeU796yVmw" name="profileToBuild" visibility="private" type="_sCMNUJwtEeqGkeU796yVmw" isUnique="false"/>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCvm8JwtEeqGkeU796yVmw" name="minFloorAreaKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCvm8ZwtEeqGkeU796yVmw" name="minNbBedroomsKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCwOAJwtEeqGkeU796yVmw" name="minNbSleepingKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCwOAZwtEeqGkeU796yVmw" name="minNbBathroomKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCwOApwtEeqGkeU796yVmw" name="minNbMinNightKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCw1EJwtEeqGkeU796yVmw" name="maxPricePerNightKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCw1EZwtEeqGkeU796yVmw" name="mustWifiKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCw1EpwtEeqGkeU796yVmw" name="mustTeleKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedAttribute xmi:type="uml:Property" xmi:id="_sCxcIJwtEeqGkeU796yVmw" name="mustTerraceKnown" visibility="private" isUnique="false">
                <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
              </ownedAttribute>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC0fcZwtEeqGkeU796yVmw" name="Builder" specification="_sCyqQJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild = new Profile();&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC2UoZwtEeqGkeU796yVmw" name="build" specification="_sC1tkJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    Profile buildApartment = this.profileToBuild;&#xD;
    this.profileToBuild = new Profile();&#xD;
    return buildApartment;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC3iwZwtEeqGkeU796yVmw" name="setMinFloorArea" specification="_sC27sJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.minFloorArea = minFloorArea;&#xD;
    minFloorAreaKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC4w4ZwtEeqGkeU796yVmw" name="setMinNbBedrooms" specification="_sC3iwpwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.minNbBedrooms = minNbBedrooms;&#xD;
    minNbBedroomsKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC5_AZwtEeqGkeU796yVmw" name="setMinNbSleeping" specification="_sC5X8JwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.minNbSleeping = minNbSleeping;&#xD;
    minNbSleepingKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC6mEpwtEeqGkeU796yVmw" name="setMinNbBathroom" specification="_sC5_ApwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.minNbBathroom = minNbBathroom;&#xD;
    minNbBathroomKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC70MZwtEeqGkeU796yVmw" name="setMinNbMinNight" specification="_sC7NIJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.minNbMinNight = minNbMinNight;&#xD;
    minNbMinNightKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC8bQpwtEeqGkeU796yVmw" name="setMaxPricePerNight" specification="_sC70MpwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.maxPricePerNight = maxPricePerNight;&#xD;
    maxPricePerNightKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sC9pYZwtEeqGkeU796yVmw" name="setMustWifi" specification="_sC9CUJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.mustWifi = mustWifi;&#xD;
    mustWifiKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDBTwJwtEeqGkeU796yVmw" name="setMustTele" specification="_sC-QcJwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.mustTele = mustTele;&#xD;
    mustTeleKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sDCh4JwtEeqGkeU796yVmw" name="setMustTerrace" specification="_sDB60JwtEeqGkeU796yVmw">
                <language>JAVA</language>
                <body>&#xD;
    profileToBuild.mustTerrace = mustTerrace;&#xD;
    mustTerraceKnown = true;&#xD;
    return this;&#xD;
</body>
              </ownedBehavior>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sCyqQJwtEeqGkeU796yVmw" name="Builder" visibility="public" method="_sC0fcZwtEeqGkeU796yVmw"/>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC1tkJwtEeqGkeU796yVmw" name="build" visibility="public" method="_sC2UoZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC2UoJwtEeqGkeU796yVmw" type="_sCMNUJwtEeqGkeU796yVmw" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC27sJwtEeqGkeU796yVmw" name="setMinFloorArea" visibility="public" method="_sC3iwZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC27sZwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC3iwJwtEeqGkeU796yVmw" name="minFloorArea">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC3iwpwtEeqGkeU796yVmw" name="setMinNbBedrooms" visibility="public" method="_sC4w4ZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC4J0JwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC4w4JwtEeqGkeU796yVmw" name="minNbBedrooms">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC5X8JwtEeqGkeU796yVmw" name="setMinNbSleeping" visibility="public" method="_sC5_AZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC5X8ZwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC5_AJwtEeqGkeU796yVmw" name="minNbSleeping">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC5_ApwtEeqGkeU796yVmw" name="setMinNbBathroom" visibility="public" method="_sC6mEpwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC6mEJwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC6mEZwtEeqGkeU796yVmw" name="minNbBathroom">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC7NIJwtEeqGkeU796yVmw" name="setMinNbMinNight" visibility="public" method="_sC70MZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC7NIZwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC70MJwtEeqGkeU796yVmw" name="minNbMinNight">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC70MpwtEeqGkeU796yVmw" name="setMaxPricePerNight" visibility="public" method="_sC8bQpwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC8bQJwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC8bQZwtEeqGkeU796yVmw" name="maxPricePerNight">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC9CUJwtEeqGkeU796yVmw" name="setMustWifi" visibility="public" method="_sC9pYZwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC9CUZwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC9pYJwtEeqGkeU796yVmw" name="mustWifi">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sC-QcJwtEeqGkeU796yVmw" name="setMustTele" visibility="public" method="_sDBTwJwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sC-3gJwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDAssJwtEeqGkeU796yVmw" name="mustTele">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:type="uml:Operation" xmi:id="_sDB60JwtEeqGkeU796yVmw" name="setMustTerrace" visibility="public" method="_sDCh4JwtEeqGkeU796yVmw">
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDB60ZwtEeqGkeU796yVmw" type="_epPEoJwsEeqGkeU796yVmw" direction="return"/>
                <ownedParameter xmi:type="uml:Parameter" xmi:id="_sDB60pwtEeqGkeU796yVmw" name="mustTerrace">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
                </ownedParameter>
              </ownedOperation>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_TpE60J2VEeq5UMfZ1C8e7g" name="QuestionDoubleBoolean">
            <generalization xmi:type="uml:Generalization" xmi:id="_maEs8J2bEeq5UMfZ1C8e7g" general="_LbxAkJpzEeqmHpvW7B5p3g"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_n9w8AJ2VEeq5UMfZ1C8e7g" name="pairParam1" visibility="public"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_xSz_0J2VEeq5UMfZ1C8e7g" name="pairParam2" visibility="public"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_mIfh4JpzEeqmHpvW7B5p3g" name="resolve" isStatic="true" isAbstract="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_7mMZkJpzEeqmHpvW7B5p3g" name="avf" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" effect="update"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_B9mnkJp0EeqmHpvW7B5p3g" name="answerPair" visibility="public" effect="read"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_BtFz0J08EeqrpIrBsKzVRw" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return" effect="create"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_g0UNEJ2VEeq5UMfZ1C8e7g" name="QuestionBestCriteria">
            <generalization xmi:type="uml:Generalization" xmi:id="_nRW6QJ2bEeq5UMfZ1C8e7g" general="_LbxAkJpzEeqmHpvW7B5p3g"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_Bv5n4J2XEeq5UMfZ1C8e7g" name="criterias" visibility="public">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EEList"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_dAcn8J2XEeq5UMfZ1C8e7g" name="resolve" isStatic="true" isAbstract="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_dAcn8Z2XEeq5UMfZ1C8e7g" name="avf" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" effect="update"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_dAcn8p2XEeq5UMfZ1C8e7g" name="criteria" visibility="public" type="__lgUEGVHEeq0U8CyxWHVBA" effect="read"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_dAcn852XEeq5UMfZ1C8e7g" name="updatedAVF" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return" effect="create"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_XHabMJ2bEeq5UMfZ1C8e7g" name="QuestionDoubleDouble">
            <generalization xmi:type="uml:Generalization" xmi:id="_ocDLwJ2bEeq5UMfZ1C8e7g" general="_LbxAkJpzEeqmHpvW7B5p3g"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_XHabMZ2bEeq5UMfZ1C8e7g" name="pairParam1" visibility="public"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="_XHabMp2bEeq5UMfZ1C8e7g" name="pairParam2" visibility="public"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="_XHabM52bEeq5UMfZ1C8e7g" name="resolve" isStatic="true" isAbstract="true">
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_XHabNJ2bEeq5UMfZ1C8e7g" name="avf" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" effect="update"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_XHabNZ2bEeq5UMfZ1C8e7g" name="answerPair" visibility="public" effect="read"/>
              <ownedParameter xmi:type="uml:Parameter" xmi:id="_XHabNp2bEeq5UMfZ1C8e7g" name="updatedAVF" visibility="public" type="_72rEYF_BEeqAAb4u4HLI7w" direction="return" effect="create"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Dependency" xmi:id="_f3tr0J2eEeq5UMfZ1C8e7g" client="_LbxAkJpzEeqmHpvW7B5p3g" supplier="_q-Zh0J2dEeq5UMfZ1C8e7g"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_Thu5IKTzEeuFmKtN2pkKow" name="DistanceValueFunction" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_mSj64KTzEeuFmKtN2pkKow"/>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_mSmXIKTzEeuFmKtN2pkKow" name="interestLocations" visibility="private" type="_ESE1Ul_AEeqAAb4u4HLI7w" isUnique="false">
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hPE9kKXdEeukrP4jUfIedQ"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hPJ2EKXdEeukrP4jUfIedQ" value="*"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_mSwvMKTzEeuFmKtN2pkKow" name="apiKey" visibility="private" isUnique="false">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_mSzygKTzEeuFmKtN2pkKow" name="LOGGER" visibility="private" isLeaf="true" isStatic="true" type="_ZCxH8F--EeqAAb4u4HLI7w" isUnique="false">
            <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_mSzygaTzEeuFmKtN2pkKow" name="defaultValue">
              <language>JAVA</language>
              <body>LoggerFactory.getLogger(ValueDistFunction.class)</body>
            </defaultValue>
          </ownedAttribute>
          <ownedAttribute xmi:type="uml:Property" xmi:id="_YIjnYKUAEeuPdIA6u3wedQ" name="durationValueFunction" visibility="private" type="_JtKIEKnSEeuOffBP_LbjAg">
            <defaultValue xmi:type="uml:InstanceValue" xmi:id="_Q6WVYKXeEeukrP4jUfIedQ" name="defaultPVF" type="_d19NUF_CEeqAAb4u4HLI7w"/>
          </ownedAttribute>
          <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_JMRLEKT8EeuPdIA6u3wedQ" client="_Thu5IKTzEeuFmKtN2pkKow" supplier="_siBZIF_CEeqAAb4u4HLI7w" contract="_siBZIF_CEeqAAb4u4HLI7w"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mS4D8KTzEeuFmKtN2pkKow" name="DistanceValueFunction" specification="_6hywIKT6EeuPdIA6u3wedQ">
            <language>JAVA</language>
            <body>&#xD;
    interestlocation = new HashMap&lt;>();&#xD;
    this.appartlocation = appartlocation;&#xD;
    this.apiKey = apiKey;&#xD;
    maxDuration = 0;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mS4rAKTzEeuFmKtN2pkKow" name="addInterestLocation" specification="_mS_YsKTzEeuFmKtN2pkKow">
            <language>JAVA</language>
            <body>&#xD;
    double currentdistance = calculateDistanceLocation(interest);&#xD;
    if (currentdistance > maxDuration)&#xD;
        maxDuration = currentdistance;&#xD;
    double utility = 1 - setUtility(currentdistance);&#xD;
    interestlocation.put(interest, utility);&#xD;
    LOGGER.info(&quot;The interest location (&quot; + interest + &quot;) with the utility &quot; + utility + &quot; has been had with success in the Map.&quot;);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mS5SEaTzEeuFmKtN2pkKow" name="calculateDistanceLocation" specification="_mTDqIKTzEeuFmKtN2pkKow">
            <language>JAVA</language>
            <body>&#xD;
    DistanceSubway dist = new DistanceSubway(interest, appartlocation, apiKey);&#xD;
    double currentdistance = dist.calculateDistanceAddress(DistanceMode.COORDINATE);&#xD;
    LOGGER.info(&quot;The distance between &quot; + interest + &quot; and &quot; + appartlocation + &quot; has been calculated and is equal to &quot; + currentdistance);&#xD;
    return currentdistance;&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mS55IKTzEeuFmKtN2pkKow" name="setUtility" specification="_mTJwwKTzEeuFmKtN2pkKow">
            <language>JAVA</language>
            <body>&#xD;
    Map&lt;Double, Double> map = new HashMap&lt;>();&#xD;
    map.put(0d, 0d);&#xD;
    map.put(3600d, 0.8);&#xD;
    map.put(36000d, 1d);&#xD;
    PieceWiseLinearValueFunction f = new PieceWiseLinearValueFunction(map);&#xD;
    return f.getSubjectiveValue(currentdistance);&#xD;
</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_mS6gMKTzEeuFmKtN2pkKow" name="getSubjectiveValue" specification="_mTNbIKTzEeuFmKtN2pkKow">
            <language>JAVA</language>
            <body>&#xD;
    if (interestlocation.containsKey(objectiveData) == false) {&#xD;
        LOGGER.error(&quot;Impossible to return the subjective value of the key &quot; + objectiveData + &quot; because the map doestn't contain this key.&quot;);&#xD;
        throw new IllegalArgumentException(&quot;The map doestn't contain the key &quot; + objectiveData);&#xD;
    }&#xD;
    return interestlocation.get(objectiveData);&#xD;
</body>
          </ownedBehavior>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_mS7HQKTzEeuFmKtN2pkKow" name="DistanceValueFunction" visibility="private">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_BKO5MKT6EeuPdIA6u3wedQ" name="interestLocations" visibility="public">
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yVJYkKXbEeukrP4jUfIedQ"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yVZ3QKXbEeukrP4jUfIedQ" value="*"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_ILR6EKT6EeuPdIA6u3wedQ" name="PVF" type="_siBZIF_CEeqAAb4u4HLI7w">
              <defaultValue xmi:type="uml:InstanceValue" xmi:id="_lSQ7oKXcEeukrP4jUfIedQ" type="_d19NUF_CEeqAAb4u4HLI7w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_rIl0sKT-EeuPdIA6u3wedQ" name="apiKey">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_mS_YsKTzEeuFmKtN2pkKow" name="addInterestLocation" visibility="private" method="_mS4rAKTzEeuFmKtN2pkKow">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_mS_YsaTzEeuFmKtN2pkKow" name="interest" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_mTDqIKTzEeuFmKtN2pkKow" name="calculateDistanceLocation" visibility="private" method="_mS5SEaTzEeuFmKtN2pkKow">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_mTDqIaTzEeuFmKtN2pkKow" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_mTDqIqTzEeuFmKtN2pkKow" name="interest" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_mTJwwKTzEeuFmKtN2pkKow" name="setUtility" visibility="private" method="_mS55IKTzEeuFmKtN2pkKow">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_mTJwwaTzEeuFmKtN2pkKow" direction="return">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_mTJwwqTzEeuFmKtN2pkKow" name="currentdistance">
              <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusJava_LIBRARIES/JavaLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_mTNbIKTzEeuFmKtN2pkKow" name="getSubjectiveValue" visibility="public" method="_mS6gMKTzEeuFmKtN2pkKow">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="__xwAQKXeEeukrP4jUfIedQ" name="apartmentLocalization" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_6hywIKT6EeuPdIA6u3wedQ" name="getDistanceValueFunction" isStatic="true" method="_mS4D8KTzEeuFmKtN2pkKow">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_6hywIaT6EeuPdIA6u3wedQ" name="interestLocations" type="_ESE1Ul_AEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_6hywIqT6EeuPdIA6u3wedQ" name="PVF" type="_siBZIF_CEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_uNuZoKT-EeuPdIA6u3wedQ" name="apiKey">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_TZLrAKT8EeuPdIA6u3wedQ" client="_Thu5IKTzEeuFmKtN2pkKow" supplier="_ESBK8F_AEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Realization" xmi:id="_Bao6cKT_EeuPdIA6u3wedQ" client="_Thu5IKTzEeuFmKtN2pkKow" supplier="_siBZIF_CEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_JtKIEKnSEeuOffBP_LbjAg" name="PVFDouble" visibility="public">
          <generalization xmi:type="uml:Generalization" xmi:id="_XUQ28KnSEeuOffBP_LbjAg" general="_siBZIF_CEeqAAb4u4HLI7w"/>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_qfC2QKgQEeuQ07mwWsrMMA" name="Localisation service"/>
      <packagedElement xmi:type="uml:Package" xmi:id="_1HbS4LyYEeuvu5ayhp9Lzg" name="plot">
        <packagedElement xmi:type="uml:Class" xmi:id="_3ns3QLyYEeuvu5ayhp9Lzg" name="SpiderPlot" visibility="public">
          <ownedAttribute xmi:type="uml:Property" xmi:id="_8lF-ULyYEeuvu5ayhp9Lzg" name="LOGGER" visibility="private" type="_ZCxH8F--EeqAAb4u4HLI7w"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_eDXr8LyZEeuvu5ayhp9Lzg" name="createChart" specification="_YwUd8LyZEeuvu5ayhp9Lzg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_fK5UsLyZEeuvu5ayhp9Lzg" name="toCategoryDataSet" specification="_Z7uhILyZEeuvu5ayhp9Lzg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_gRctELyZEeuvu5ayhp9Lzg" name="createImgChart" specification="_dFFewLyZEeuvu5ayhp9Lzg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hZ470LyZEeuvu5ayhp9Lzg" name="given" specification="_a_j8sLyZEeuvu5ayhp9Lzg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ib5ycLyZEeuvu5ayhp9Lzg" name="SpiderPlot" specification="_cD02ELyZEeuvu5ayhp9Lzg"/>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_YwUd8LyZEeuvu5ayhp9Lzg" name="createChart" visibility="private" method="_eDXr8LyZEeuvu5ayhp9Lzg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_8pUUALy5Eeuvu5ayhp9Lzg" name="dataset" type="_L5pcwLy1Eeuvu5ayhp9Lzg"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_aMgaMLy8Eeuvu5ayhp9Lzg" type="_klApcLyYEeuvu5ayhp9Lzg" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_Z7uhILyZEeuvu5ayhp9Lzg" name="toCategoryDataSet" visibility="private" method="_fK5UsLyZEeuvu5ayhp9Lzg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_-7hNsLyZEeuvu5ayhp9Lzg" name="apart1" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_BKiC8LyaEeuvu5ayhp9Lzg" name="apart2" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_G-ciULyaEeuvu5ayhp9Lzg" name="avf" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_OQnh4Ly6Eeuvu5ayhp9Lzg" type="_L5pcwLy1Eeuvu5ayhp9Lzg" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_a_j8sLyZEeuvu5ayhp9Lzg" name="given" visibility="public" method="_hZ470LyZEeuvu5ayhp9Lzg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_aa2QoLyaEeuvu5ayhp9Lzg" name="apart1" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_c2S_YLyaEeuvu5ayhp9Lzg" name="apart2" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_r3CasLyaEeuvu5ayhp9Lzg" name="avf" type="_72rEYF_BEeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_o8Nv4Ly8Eeuvu5ayhp9Lzg" type="_3ns3QLyYEeuvu5ayhp9Lzg" direction="return"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_cD02ELyZEeuvu5ayhp9Lzg" name="«create» SpiderPlot" visibility="private" method="_ib5ycLyZEeuvu5ayhp9Lzg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_3kx0MLyaEeuvu5ayhp9Lzg" name="apart1" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_57l6kLyaEeuvu5ayhp9Lzg" name="apart2" type="_1N7WIF--EeqAAb4u4HLI7w"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_7z8jULyaEeuvu5ayhp9Lzg" name="avf" type="_72rEYF_BEeqAAb4u4HLI7w"/>
          </ownedOperation>
          <ownedOperation xmi:type="uml:Operation" xmi:id="_dFFewLyZEeuvu5ayhp9Lzg" name="createImgChart" visibility="private" method="_gRctELyZEeuvu5ayhp9Lzg">
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_DIK-4LybEeuvu5ayhp9Lzg" name="jfreechart" type="_klApcLyYEeuvu5ayhp9Lzg"/>
            <ownedParameter xmi:type="uml:Parameter" xmi:id="_r3Cs0Ly9Eeuvu5ayhp9Lzg" type="_flZVALy9Eeuvu5ayhp9Lzg" direction="return"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_wTTDQLydEeuvu5ayhp9Lzg" client="_3ns3QLyYEeuvu5ayhp9Lzg" supplier="_72rEYF_BEeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_8U1igLydEeuvu5ayhp9Lzg" client="_3ns3QLyYEeuvu5ayhp9Lzg" supplier="_1N7WIF--EeqAAb4u4HLI7w"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="_5qaA8Ly7Eeuvu5ayhp9Lzg" client="_3ns3QLyYEeuvu5ayhp9Lzg" supplier="_L5pcwLy1Eeuvu5ayhp9Lzg"/>
        <packagedElement xmi:type="uml:Dependency" xmi:id="__03_ILy7Eeuvu5ayhp9Lzg" client="_3ns3QLyYEeuvu5ayhp9Lzg" supplier="_klApcLyYEeuvu5ayhp9Lzg"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="__C89EHEuEeq9ooUMj2JdaQ" name="java">
      <packagedElement xmi:type="uml:Package" xmi:id="__DER0HEuEeq9ooUMj2JdaQ" name="java">
        <packagedElement xmi:type="uml:Package" xmi:id="__DER0XEuEeq9ooUMj2JdaQ" name="lang">
          <packagedElement xmi:type="uml:Class" xmi:id="__DK_gHEuEeq9ooUMj2JdaQ" name="Object"/>
          <packagedElement xmi:type="uml:Class" xmi:id="__EuesHEuEeq9ooUMj2JdaQ" name="String"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_t0QygJj5EeqYP-aD6j0wRg" name="Exception"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_t0_yUJj5EeqYP-aD6j0wRg" name="Throwable"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_WsgQcLy3Eeuvu5ayhp9Lzg" name="Comparable"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_i_F0QXEvEeq9ooUMj2JdaQ" name="util">
          <packagedElement xmi:type="uml:Class" xmi:id="_i_F0QnEvEeq9ooUMj2JdaQ" name="Random"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_UCvVMJj5EeqYP-aD6j0wRg" name="Optional"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_Y7Pz8HEzEeq9ooUMj2JdaQ" name="io">
          <packagedElement xmi:type="uml:Class" xmi:id="_Y7Pz8XEzEeq9ooUMj2JdaQ" name="File"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_jhOesHE0Eeq9ooUMj2JdaQ" name="IOException"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_OInLAJj3EeqYP-aD6j0wRg" name="nio">
          <packagedElement xmi:type="uml:Package" xmi:id="_OIqOUJj3EeqYP-aD6j0wRg" name="file">
            <packagedElement xmi:type="uml:Class" xmi:id="_OIsDgJj3EeqYP-aD6j0wRg" name="Path"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_TGEGgLy9Eeuvu5ayhp9Lzg" name="awt">
          <packagedElement xmi:type="uml:Package" xmi:id="_aVik8Ly9Eeuvu5ayhp9Lzg" name="image">
            <packagedElement xmi:type="uml:Interface" xmi:id="_flZVALy9Eeuvu5ayhp9Lzg" name="RenderedImage"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_QFppULyYEeuvu5ayhp9Lzg" name="org">
        <packagedElement xmi:type="uml:Package" xmi:id="_TN_TQLyYEeuvu5ayhp9Lzg" name="jfree">
          <packagedElement xmi:type="uml:Package" xmi:id="_WU0hULyYEeuvu5ayhp9Lzg" name="data">
            <packagedElement xmi:type="uml:Package" xmi:id="_Z04uwLyYEeuvu5ayhp9Lzg" name="category">
              <packagedElement xmi:type="uml:Interface" xmi:id="_L5pcwLy1Eeuvu5ayhp9Lzg" name="CategoryDataset" visibility="public"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_RjJmcLy2Eeuvu5ayhp9Lzg" name="DefaultCategoryDataset" visibility="public">
                <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_JBoxALy5Eeuvu5ayhp9Lzg" name="     implements" client="_RjJmcLy2Eeuvu5ayhp9Lzg" supplier="_L5pcwLy1Eeuvu5ayhp9Lzg" contract="_L5pcwLy1Eeuvu5ayhp9Lzg"/>
                <ownedOperation xmi:type="uml:Operation" xmi:id="_kCQmELy2Eeuvu5ayhp9Lzg" name="«create» DefaultCategoryDataset" visibility="public"/>
                <ownedOperation xmi:type="uml:Operation" xmi:id="_mfqcoLy2Eeuvu5ayhp9Lzg" name="addValue" visibility="public">
                  <ownedParameter xmi:type="uml:Parameter" xmi:id="_GjBEYLy3Eeuvu5ayhp9Lzg" name="value">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter" xmi:id="_o9bDELy3Eeuvu5ayhp9Lzg" name="rowKey" type="_WsgQcLy3Eeuvu5ayhp9Lzg"/>
                  <ownedParameter xmi:type="uml:Parameter" xmi:id="_u-J2cLy3Eeuvu5ayhp9Lzg" name="columnKey" type="_WsgQcLy3Eeuvu5ayhp9Lzg"/>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_hVrmsLyYEeuvu5ayhp9Lzg" name="chart">
            <packagedElement xmi:type="uml:Class" xmi:id="_klApcLyYEeuvu5ayhp9Lzg" name="JFreeChart"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_YzGkkHEzEeq9ooUMj2JdaQ" name="swt">
      <packagedElement xmi:type="uml:Package" xmi:id="_Y2vucHEzEeq9ooUMj2JdaQ" name="org">
        <packagedElement xmi:type="uml:Package" xmi:id="_Y2vucXEzEeq9ooUMj2JdaQ" name="eclipse">
          <packagedElement xmi:type="uml:Package" xmi:id="_Y244YHEzEeq9ooUMj2JdaQ" name="swt">
            <packagedElement xmi:type="uml:Package" xmi:id="_Y244YXEzEeq9ooUMj2JdaQ" name="widgets">
              <packagedElement xmi:type="uml:Class" xmi:id="_Y29J0HEzEeq9ooUMj2JdaQ" name="Display"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_Y3Z1wXEzEeq9ooUMj2JdaQ" name="Shell"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_Y316oHEzEeq9ooUMj2JdaQ" name="Text"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_Y5lnEHEzEeq9ooUMj2JdaQ" name="Button"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_Y7o1gHEzEeq9ooUMj2JdaQ" name="Composite"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_Y8fxIHEzEeq9ooUMj2JdaQ" name="graphics">
              <packagedElement xmi:type="uml:Class" xmi:id="_Y8g_QHEzEeq9ooUMj2JdaQ" name="Color"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="_fcu5EJieEeupk9giDf-csg" name="GenerateForManager" memberEnd="_fogEMJieEeupk9giDf-csg _fohSUJieEeupk9giDf-csg">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_foQMkJieEeupk9giDf-csg" source="org.eclipse.papyrus">
        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_foRasJieEeupk9giDf-csg" key="nature" value="UML_Nature"/>
      </eAnnotations>
      <ownedEnd xmi:type="uml:Property" xmi:id="_fogEMJieEeupk9giDf-csg" name="manager" type="_nMIOoINeEeuKr4GKR77Z1g" association="_fcu5EJieEeupk9giDf-csg"/>
      <ownedEnd xmi:type="uml:Property" xmi:id="_fohSUJieEeupk9giDf-csg" name="generate database statistics" type="_oYvPkIS6EeuzdriENguzmA" association="_fcu5EJieEeupk9giDf-csg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="_E7XZUJu2Eeuncr8gT3yhGw" name="compare appartments" memberEnd="_E78oIJu2Eeuncr8gT3yhGw _E792QJu2Eeuncr8gT3yhGw">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E749wJu2Eeuncr8gT3yhGw" source="org.eclipse.papyrus">
        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E76L4Ju2Eeuncr8gT3yhGw" key="nature" value="UML_Nature"/>
      </eAnnotations>
      <ownedEnd xmi:type="uml:Property" xmi:id="_E78oIJu2Eeuncr8gT3yhGw" name="compare 2 apartments using spiderplot" type="_rB2xcIS7EeuzdriENguzmA" association="_E7XZUJu2Eeuncr8gT3yhGw"/>
      <ownedEnd xmi:type="uml:Property" xmi:id="_E792QJu2Eeuncr8gT3yhGw" name="tenant" type="_jkbIIINeEeuKr4GKR77Z1g" association="_E7XZUJu2Eeuncr8gT3yhGw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Association" xmi:id="_XdBWoJu2Eeuncr8gT3yhGw" name="see apartments'" memberEnd="_XdFBAZu2Eeuncr8gT3yhGw _XdFoEJu2Eeuncr8gT3yhGw">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XdEZ8Ju2Eeuncr8gT3yhGw" source="org.eclipse.papyrus">
        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XdFBAJu2Eeuncr8gT3yhGw" key="nature" value="UML_Nature"/>
      </eAnnotations>
      <ownedEnd xmi:type="uml:Property" xmi:id="_XdFBAZu2Eeuncr8gT3yhGw" name="see ordered apartments' list" type="_czcs0GS3EeqTxqp8Bmjtjg" association="_XdBWoJu2Eeuncr8gT3yhGw"/>
      <ownedEnd xmi:type="uml:Property" xmi:id="_XdFoEJu2Eeuncr8gT3yhGw" name="tenant" type="_jkbIIINeEeuKr4GKR77Z1g" association="_XdBWoJu2Eeuncr8gT3yhGw"/>
    </packagedElement>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ZAfQAF--EeqAAb4u4HLI7w">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZAkIgF--EeqAAb4u4HLI7w" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/PapyrusJava/1#/"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusJava_PROFILES/PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
    </profileApplication>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ZBdgYF--EeqAAb4u4HLI7w">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZBfVkF--EeqAAb4u4HLI7w" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/Codegen/1#/"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://Codegen_PROFILES/Codegen.profile.uml#_fPDsIBa-EearhdjjJ6cVzQ"/>
    </profileApplication>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ZBhx0F--EeqAAb4u4HLI7w">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZBi_8F--EeqAAb4u4HLI7w" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
    </profileApplication>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_Phr3oJp0EeqmHpvW7B5p3g">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Phts0Jp0EeqmHpvW7B5p3g" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
    </profileApplication>
  </uml:Model>
  <standard:Create xmi:id="_1OD5AF--EeqAAb4u4HLI7w" base_BehavioralFeature="_1OCq4F--EeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_1P_LoF--EeqAAb4u4HLI7w" base_BehavioralFeature="_1P99gF--EeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_ESP0cF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_ESOmUF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_EScowF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_ESZlcF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_VKcgoF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_VKbSgF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_VKoG0F_AEeqAAb4u4HLI7w" base_BehavioralFeature="_VKlqkF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_VLS1MF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_VLRnEF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_VQQNsF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_VQO_kl_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_VQsSkF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_VQqdYF_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_4qcOYF_AEeqAAb4u4HLI7w" base_BehavioralFeature="_4qbAQl_AEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_G6ksIF_BEeqAAb4u4HLI7w" base_BehavioralFeature="_G6jeAl_BEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_72_0gF_BEeqAAb4u4HLI7w" base_BehavioralFeature="_729_UF_BEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_8uiggF_BEeqAAb4u4HLI7w" base_BehavioralFeature="_8uhSYl_BEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_MMW5YF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_MMUdIF_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_SVZ7QF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_SVYtIl_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_SVgB4F_CEeqAAb4u4HLI7w" base_BehavioralFeature="_SVeMsF_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_SVmIgF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_SVjsQF_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_WnbxIF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_WnajAl_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_d2BewF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_d2A3sl_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_oHK-cF_CEeqAAb4u4HLI7w" base_BehavioralFeature="_oHJwUl_CEeqAAb4u4HLI7w"/>
  <standard:Create xmi:id="_jAWYgHEvEeq9ooUMj2JdaQ" base_BehavioralFeature="_i_3QUnEvEeq9ooUMj2JdaQ"/>
  <standard:Create xmi:id="_t0ol8Jj5EeqYP-aD6j0wRg" base_BehavioralFeature="_t0gqIJj5EeqYP-aD6j0wRg"/>
  <standard:Create xmi:id="_t1apEJj5EeqYP-aD6j0wRg" base_BehavioralFeature="_t1TUUJj5EeqYP-aD6j0wRg"/>
  <standard:Create xmi:id="_sCoSMJwtEeqGkeU796yVmw" base_BehavioralFeature="_sCkAwZwtEeqGkeU796yVmw"/>
  <standard:Create xmi:id="_sC0fcJwtEeqGkeU796yVmw" base_BehavioralFeature="_sCyqQJwtEeqGkeU796yVmw"/>
  <standard:Create xmi:id="_yp1HUJw7EeqGkeU796yVmw" base_BehavioralFeature="_yptykJw7EeqGkeU796yVmw"/>
  <standard:Create xmi:id="_q_ZnYJ2dEeq5UMfZ1C8e7g" base_BehavioralFeature="_q_Uu4J2dEeq5UMfZ1C8e7g"/>
  <standard:Create xmi:id="_mWTLYKTzEeuFmKtN2pkKow" base_BehavioralFeature="_mS7HQKTzEeuFmKtN2pkKow"/>
</xmi:XMI>
