<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ejb="http:///schemas/Ejb/2" xmlns:Hibernate="http:///schemas/Hibernate/_x1kFIJS-Ed2ubJfKtVboPA/7" xmlns:Persistence="http:///schemas/Persistence/_BTbVcD5IEd2gvfvyq2AafQ/4" xmlns:Taylor="http:///schemas/Taylor/_pOJwEGKmEd6e3uz-ZmWQTQ/11" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http:///schemas/Ejb/2 pathmap://TAYLOR_PROFILES/Ejb.profile.uml#_ryGNoGU3Eduqt5fXCogsKA http:///schemas/Hibernate/_x1kFIJS-Ed2ubJfKtVboPA/7 pathmap://TAYLOR_PROFILES/Hibernate.profile.uml#_x1t2IJS-Ed2ubJfKtVboPA http:///schemas/Persistence/_BTbVcD5IEd2gvfvyq2AafQ/4 pathmap://TAYLOR_PROFILES/Persistence.profile.uml#_BTu3cD5IEd2gvfvyq2AafQ http:///schemas/Taylor/_pOJwEGKmEd6e3uz-ZmWQTQ/11 pathmap://TAYLOR_PROFILES/Taylor.profile.uml#_pOS6AGKmEd6e3uz-ZmWQTQ">
  <uml:Model xmi:id="_byIQjuCTEdyaP_VatklqmA" name="taylor-identity">
    <ownedComment xmi:id="_jR8Q8OCTEdyaP_VatklqmA">
      <body>This project provides a database for storing User and Group information.</body>
    </ownedComment>
    <packagedElement xmi:type="uml:Package" xmi:id="_sOc48OCTEdyaP_VatklqmA" name="net.taylor.identity.entity">
      <ownedComment xmi:id="_uHJf8OCTEdyaP_VatklqmA">
        <body>This package contains the entities.</body>
      </ownedComment>
      <packagedElement xmi:type="uml:Class" xmi:id="_zm9-oOCTEdyaP_VatklqmA" name="User">
        <ownedComment xmi:id="_D61NsOCfEdyaP_VatklqmA">
          <body>The User principle.</body>
        </ownedComment>
        <ownedAttribute xmi:id="_1NfQgOCTEdyaP_VatklqmA" name="id">
          <ownedComment xmi:id="_LyV8gOCfEdyaP_VatklqmA">
            <body>The user id.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_4xeUoOCTEdyaP_VatklqmA" name="name">
          <ownedComment xmi:id="_Mkt0oOCfEdyaP_VatklqmA">
            <body>The user's full name.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_5bfiAOCTEdyaP_VatklqmA" name="email">
          <ownedComment xmi:id="_Ks5-cOCfEdyaP_VatklqmA">
            <body>The user's email address.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_6LBhgOCTEdyaP_VatklqmA" name="password">
          <ownedComment xmi:id="_NpaL0OCfEdyaP_VatklqmA">
            <body>The user's password. This is encrypted with a one-way hash.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_8YvWQOCTEdyaP_VatklqmA" name="confirmation">
          <ownedComment xmi:id="_Q7g1wOCfEdyaP_VatklqmA">
            <body>The password confirmation value. This is not persisted.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_VNF_sOCfEdyaP_VatklqmA" name="membership" type="_0WWNIOCTEdyaP_VatklqmA" association="_VM81wOCfEdyaP_VatklqmA">
          <ownedComment xmi:id="_fJq9kOCfEdyaP_VatklqmA">
            <body>The groups which the user is a member of.</body>
          </ownedComment>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VNF_suCfEdyaP_VatklqmA" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VNF_seCfEdyaP_VatklqmA"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_gFZs4W1cEd6GRsEz-F3CxQ" name="permissions" type="_bc-JMG1cEd6GRsEz-F3CxQ" association="_gFZs4G1cEd6GRsEz-F3CxQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFjd4W1cEd6GRsEz-F3CxQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFjd4G1cEd6GRsEz-F3CxQ"/>
        </ownedAttribute>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_0WWNIOCTEdyaP_VatklqmA" name="Group">
        <ownedComment xmi:id="_GQmLMOCfEdyaP_VatklqmA">
          <body>The Group principle.</body>
        </ownedComment>
        <ownedAttribute xmi:id="_1_G6sOCTEdyaP_VatklqmA" name="id">
          <ownedComment xmi:id="_G8tDQOCfEdyaP_VatklqmA">
            <body>The group id.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_-NkJ4OCTEdyaP_VatklqmA" name="name">
          <ownedComment xmi:id="_H6_QcOCfEdyaP_VatklqmA">
            <body>The group name.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_-xU-QOCTEdyaP_VatklqmA" name="description">
          <ownedComment xmi:id="_ImzNkOCfEdyaP_VatklqmA">
            <body>The description of the group.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_oJuxQORWEduBeY_OwL2h0Q"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_VNF_s-CfEdyaP_VatklqmA" name="members" type="_zm9-oOCTEdyaP_VatklqmA" association="_VM81wOCfEdyaP_VatklqmA">
          <ownedComment xmi:id="_bJE18OCfEdyaP_VatklqmA">
            <body>The group members.</body>
          </ownedComment>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VNF_teCfEdyaP_VatklqmA" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VNF_tOCfEdyaP_VatklqmA"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_gwwXAG1cEd6GRsEz-F3CxQ" name="permissions" type="_bc-JMG1cEd6GRsEz-F3CxQ" association="_gwmmAG1cEd6GRsEz-F3CxQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gwwXAm1cEd6GRsEz-F3CxQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gwwXAW1cEd6GRsEz-F3CxQ"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_6I_6MG_kEd6V_5tqMzbBwQ" name="conditional">
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_nucqwMUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_XBFf0W_lEd6V_5tqMzbBwQ" name="membership" type="_0WWNIOCTEdyaP_VatklqmA" association="_XBFf0G_lEd6V_5tqMzbBwQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XBFf02_lEd6V_5tqMzbBwQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XBFf0m_lEd6V_5tqMzbBwQ"/>
        </ownedAttribute>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_VM81wOCfEdyaP_VatklqmA" memberEnd="_VNF_sOCfEdyaP_VatklqmA _VNF_s-CfEdyaP_VatklqmA"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_bc-JMG1cEd6GRsEz-F3CxQ" name="Permission">
        <ownedAttribute xmi:id="_dLWWkG1cEd6GRsEz-F3CxQ" name="id">
          <ownedComment xmi:id="_dL8McW1cEd6GRsEz-F3CxQ">
            <body>The primary key.</body>
          </ownedComment>
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_n8AloMUBEdqL1f35w3GLLw"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dLgHkG1cEd6GRsEz-F3CxQ" value="1"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dLWWkW1cEd6GRsEz-F3CxQ" value="1"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_eMS2MG1cEd6GRsEz-F3CxQ" name="target">
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_e_sCAG1cEd6GRsEz-F3CxQ" name="action">
          <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_gFjd4m1cEd6GRsEz-F3CxQ" name="users" type="_zm9-oOCTEdyaP_VatklqmA" association="_gFZs4G1cEd6GRsEz-F3CxQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFjd5G1cEd6GRsEz-F3CxQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFjd421cEd6GRsEz-F3CxQ"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_gwwXA21cEd6GRsEz-F3CxQ" name="groups" type="_0WWNIOCTEdyaP_VatklqmA" association="_gwmmAG1cEd6GRsEz-F3CxQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gwwXBW1cEd6GRsEz-F3CxQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gwwXBG1cEd6GRsEz-F3CxQ"/>
        </ownedAttribute>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_gFZs4G1cEd6GRsEz-F3CxQ" memberEnd="_gFZs4W1cEd6GRsEz-F3CxQ _gFjd4m1cEd6GRsEz-F3CxQ"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_gwmmAG1cEd6GRsEz-F3CxQ" memberEnd="_gwwXAG1cEd6GRsEz-F3CxQ _gwwXA21cEd6GRsEz-F3CxQ"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_XBFf0G_lEd6V_5tqMzbBwQ" memberEnd="_XBFf0W_lEd6V_5tqMzbBwQ _XBFf1G_lEd6V_5tqMzbBwQ">
        <ownedEnd xmi:id="_XBFf1G_lEd6V_5tqMzbBwQ" name="members" type="_0WWNIOCTEdyaP_VatklqmA" association="_XBFf0G_lEd6V_5tqMzbBwQ">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XBFf1m_lEd6V_5tqMzbBwQ" value="*"/>
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XBFf1W_lEd6V_5tqMzbBwQ"/>
        </ownedEnd>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_jV39gOSrEdyvn79N1t5T-A" name="net.taylor.identity.service">
      <ownedComment xmi:id="_l61NkOSrEdyvn79N1t5T-A">
        <body>This package contains the services.</body>
      </ownedComment>
      <packagedElement xmi:type="uml:Interface" xmi:id="_qE9rsOSrEdyvn79N1t5T-A" name="IdentityService">
        <ownedOperation xmi:id="_0nsDkOSrEdyvn79N1t5T-A" name="createUser">
          <ownedParameter xmi:id="_t2F-gOSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_t2F-geSsEdyvn79N1t5T-A">
              <body>returns user with value of property id entered.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t2F-guSsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t2F-g-SsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_t2F-hOSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_t2F-heSsEdyvn79N1t5T-A">
              <body>user to insert or update.</body>
            </ownedComment>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_-Op90OSrEdyvn79N1t5T-A" name="assignRole">
          <ownedParameter xmi:id="_jr9FwOSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_jr9FweSsEdyvn79N1t5T-A">
              <body>returns deleted user.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jr9FwuSsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jr9Fw-SsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_jr9FxOSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_jr9FxeSsEdyvn79N1t5T-A">
              <body>user to remove.</body>
            </ownedComment>
          </ownedParameter>
          <ownedParameter xmi:id="_khdKYOSsEdyvn79N1t5T-A" name="role">
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="__HbY4OSrEdyvn79N1t5T-A" name="unassignRole">
          <ownedParameter xmi:id="_o7POEOSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_o7POEeSsEdyvn79N1t5T-A">
              <body>returns deleted user.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_o7POEuSsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_o7POE-SsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_o7POFeSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_o7POFuSsEdyvn79N1t5T-A">
              <body>user to remove.</body>
            </ownedComment>
          </ownedParameter>
          <ownedParameter xmi:id="_o7POFOSsEdyvn79N1t5T-A" name="role">
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="___KSIOSrEdyvn79N1t5T-A" name="hasRole">
          <ownedParameter xmi:id="_qN7lAOSsEdyvn79N1t5T-A" name="return" direction="return">
            <ownedComment xmi:id="_qN7lAeSsEdyvn79N1t5T-A">
              <body>returns deleted user.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_nucqwMUBEdqL1f35w3GLLw"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qN7lAuSsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qN7lA-SsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_qN7lBeSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_qN7lBuSsEdyvn79N1t5T-A">
              <body>user to remove.</body>
            </ownedComment>
          </ownedParameter>
          <ownedParameter xmi:id="_qN7lBOSsEdyvn79N1t5T-A" name="role">
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_LMqFUOSsEdyvn79N1t5T-A" name="saveUser">
          <ownedComment xmi:id="_LMqFUeSsEdyvn79N1t5T-A">
            <body>Insert or update user.</body>
          </ownedComment>
          <ownedParameter xmi:id="_LM9AQeSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_LM9AROSsEdyvn79N1t5T-A">
              <body>returns user with value of property id entered.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LM9AQ-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LM9AQuSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LM9AReSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_LNP7MeSsEdyvn79N1t5T-A">
              <body>user to insert or update.</body>
            </ownedComment>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_LNP7MuSsEdyvn79N1t5T-A" name="getUser">
          <ownedComment xmi:id="_LNP7M-SsEdyvn79N1t5T-A">
            <body>Retrieve the user with given id.</body>
          </ownedComment>
          <ownedParameter xmi:id="_LNi2IeSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_LNi2JOSsEdyvn79N1t5T-A">
              <body>returns retrieved user.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LNi2I-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LNi2IuSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LNi2JeSsEdyvn79N1t5T-A" name="id">
            <ownedComment xmi:id="_LN2YIeSsEdyvn79N1t5T-A">
              <body>id of user to retrieve.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_LN2YIuSsEdyvn79N1t5T-A" name="queryUser">
          <ownedComment xmi:id="_LN2YI-SsEdyvn79N1t5T-A">
            <body>Retrieve all users matching criteria.</body>
          </ownedComment>
          <ownedParameter xmi:id="_LN2YJOSsEdyvn79N1t5T-A" name="example" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_LN_iEeSsEdyvn79N1t5T-A">
              <body>specifies criteria to match.</body>
            </ownedComment>
          </ownedParameter>
          <ownedParameter xmi:id="_LN_iEuSsEdyvn79N1t5T-A" name="first">
            <ownedComment xmi:id="_LOJTEeSsEdyvn79N1t5T-A">
              <body>if several entities match criteria, begin output list with the one at this index.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_n8AloMUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LOJTEuSsEdyvn79N1t5T-A" name="max">
            <ownedComment xmi:id="_LOSdAeSsEdyvn79N1t5T-A">
              <body>if several entities match criteria, return output list with at most  this many elements.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_n8AloMUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LOSdAuSsEdyvn79N1t5T-A" name="orderBy">
            <ownedComment xmi:id="_LOcOAeSsEdyvn79N1t5T-A">
              <body>order elements in output list by property with this name.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LOcOAuSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_LOcOBuSsEdyvn79N1t5T-A">
              <body>Collection of all users matching criteria.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LOcOBOSsEdyvn79N1t5T-A" value="*"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LOcOA-SsEdyvn79N1t5T-A"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_LOcOB-SsEdyvn79N1t5T-A" name="deleteUser">
          <ownedComment xmi:id="_LOcOCOSsEdyvn79N1t5T-A">
            <body>Delete the user.</body>
          </ownedComment>
          <ownedParameter xmi:id="_LPCq8eSsEdyvn79N1t5T-A" name="return" type="_zm9-oOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_LPCq9OSsEdyvn79N1t5T-A">
              <body>returns deleted user.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPCq8-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPCq8uSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_LPCq9eSsEdyvn79N1t5T-A" name="user" type="_zm9-oOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_LPL04eSsEdyvn79N1t5T-A">
              <body>user to remove.</body>
            </ownedComment>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_2ji20OSsEdyvn79N1t5T-A" name="saveGroup">
          <ownedComment xmi:id="_2ji20eSsEdyvn79N1t5T-A">
            <body>Insert or update group.</body>
          </ownedComment>
          <ownedParameter xmi:id="_2jsn0eSsEdyvn79N1t5T-A" name="return" type="_0WWNIOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_2jsn1OSsEdyvn79N1t5T-A">
              <body>returns group with value of property id entered.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2jsn0-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2jsn0uSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2jsn1eSsEdyvn79N1t5T-A" name="group" type="_0WWNIOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_2j2Y0eSsEdyvn79N1t5T-A">
              <body>group to insert or update.</body>
            </ownedComment>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_2j2Y0uSsEdyvn79N1t5T-A" name="getGroup">
          <ownedComment xmi:id="_2j2Y0-SsEdyvn79N1t5T-A">
            <body>Retrieve the group with given id.</body>
          </ownedComment>
          <ownedParameter xmi:id="_2j_iweSsEdyvn79N1t5T-A" name="return" type="_0WWNIOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_2j_ixOSsEdyvn79N1t5T-A">
              <body>returns retrieved group.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2j_iw-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2j_iwuSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2j_ixeSsEdyvn79N1t5T-A" name="id">
            <ownedComment xmi:id="_2kSdseSsEdyvn79N1t5T-A">
              <body>id of group to retrieve.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_2kSdsuSsEdyvn79N1t5T-A" name="queryGroup">
          <ownedComment xmi:id="_2kSds-SsEdyvn79N1t5T-A">
            <body>Retrieve all groups matching criteria.</body>
          </ownedComment>
          <ownedParameter xmi:id="_2kSdtOSsEdyvn79N1t5T-A" name="example" type="_0WWNIOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_2kcOseSsEdyvn79N1t5T-A">
              <body>specifies criteria to match.</body>
            </ownedComment>
          </ownedParameter>
          <ownedParameter xmi:id="_2kcOsuSsEdyvn79N1t5T-A" name="first">
            <ownedComment xmi:id="_2kl_seSsEdyvn79N1t5T-A">
              <body>if several entities match criteria, begin output list with the one at this index.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_n8AloMUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2kl_suSsEdyvn79N1t5T-A" name="max">
            <ownedComment xmi:id="_2kvJoeSsEdyvn79N1t5T-A">
              <body>if several entities match criteria, return output list with at most  this many elements.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_n8AloMUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2kvJouSsEdyvn79N1t5T-A" name="orderBy">
            <ownedComment xmi:id="_2k46oeSsEdyvn79N1t5T-A">
              <body>order elements in output list by property with this name.</body>
            </ownedComment>
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IOec4MUBEdqL1f35w3GLLw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2k46ouSsEdyvn79N1t5T-A" name="return" type="_0WWNIOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_2lCroeSsEdyvn79N1t5T-A">
              <body>Collection of all groups matching criteria.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2k46pOSsEdyvn79N1t5T-A" value="*"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2k46o-SsEdyvn79N1t5T-A"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_2lCrouSsEdyvn79N1t5T-A" name="deleteGroup">
          <ownedComment xmi:id="_2lCro-SsEdyvn79N1t5T-A">
            <body>Delete the group.</body>
          </ownedComment>
          <ownedParameter xmi:id="_2lL1keSsEdyvn79N1t5T-A" name="return" type="_0WWNIOCTEdyaP_VatklqmA" direction="return">
            <ownedComment xmi:id="_2lL1lOSsEdyvn79N1t5T-A">
              <body>returns deleted group.</body>
            </ownedComment>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2lL1k-SsEdyvn79N1t5T-A" value="1"/>
            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2lL1kuSsEdyvn79N1t5T-A" value="1"/>
          </ownedParameter>
          <ownedParameter xmi:id="_2lL1leSsEdyvn79N1t5T-A" name="group" type="_0WWNIOCTEdyaP_VatklqmA">
            <ownedComment xmi:id="_2lVmkeSsEdyvn79N1t5T-A">
              <body>group to remove.</body>
            </ownedComment>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_Fz4HkOcaEd2-HMcBOY55rw" name="isLdap">
          <ownedParameter xmi:id="_Ily1kOcaEd2-HMcBOY55rw" name="result" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_nucqwMUBEdqL1f35w3GLLw"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
    </packagedElement>
    <profileApplication xmi:id="_byIQj-CTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQkOCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/types.profile.uml#_IGLtsLQGEdyD5fIBh14Avw"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/types.profile.uml#_BsfWkMUBEdqL1f35w3GLLw"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQkeCTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQkuCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Ejb.profile.uml#_ryGNoGU3Eduqt5fXCogsKA"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Ejb.profile.uml#_EapTAMUOEdqEPMHe392Mew"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQk-CTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQlOCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Persistence.profile.uml#_BTu3cD5IEd2gvfvyq2AafQ"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Persistence.profile.uml#_EUr08MUOEdqEPMHe392Mew"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQleCTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQluCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Jws.profile.uml#__TdiwGqNEduFY77tdHAWhQ"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Jws.profile.uml#_EQNkoMUOEdqEPMHe392Mew"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQl-CTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQmOCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/JaxWS.profile.uml#_TBISYDaoEduMwIsW97suog"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/JaxWS.profile.uml#_U3X78DagEduvZYRMfIkrDw"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQmeCTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQmuCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Jmx.profile.uml#_MaATMAL8EdukAeq0eHR25A"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Jmx.profile.uml#_nrD-4flfEdq0m870WJJuhQ"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQm-CTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQnOCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Bpm.profile.uml#_lcBmUfPZEd2ZheMjN3MDrw"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Bpm.profile.uml#_imh3UOjzEdqKLuVqE-P4sg"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQneCTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQnuCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Hibernate.profile.uml#_x1t2IJS-Ed2ubJfKtVboPA"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Hibernate.profile.uml#_EY3KUMUOEdqEPMHe392Mew"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQn-CTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQoOCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/JBoss.profile.uml#__yWB8WnvEduFY77tdHAWhQ"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/JBoss.profile.uml#_RtE0EGnuEduotdtx5H1JvQ"/>
    </profileApplication>
    <profileApplication xmi:id="_byIQoeCTEdyaP_VatklqmA">
      <eAnnotations xmi:id="_byIQouCTEdyaP_VatklqmA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Taylor.profile.uml#_pOS6AGKmEd6e3uz-ZmWQTQ"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Taylor.profile.uml#_imh3UOjzEdqKLuVqE-P4sg"/>
    </profileApplication>
    <profileApplication xmi:id="_lP_dwD10Ed2M_9BIQ67eHA">
      <eAnnotations xmi:id="_lP_dwT10Ed2M_9BIQ67eHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="/net.taylor.mda.profiles/profiles/JBoss.profile.uml#__yWB8WnvEduFY77tdHAWhQ"/>
      </eAnnotations>
      <appliedProfile href="/net.taylor.mda.profiles/profiles/JBoss.profile.uml#_RtE0EGnuEduotdtx5H1JvQ"/>
    </profileApplication>
    <profileApplication xmi:id="_IlgegG1dEd6GRsEz-F3CxQ">
      <eAnnotations xmi:id="_IlgegW1dEd6GRsEz-F3CxQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://TAYLOR_PROFILES/Seam.profile.uml#_-5zkMO12Ed2IMZD7j9vEEQ"/>
      </eAnnotations>
      <appliedProfile href="pathmap://TAYLOR_PROFILES/Seam.profile.uml#_SlhIkO1xEd2IMZD7j9vEEQ"/>
    </profileApplication>
  </uml:Model>
  <Persistence:javaxpersistenceEntity xmi:id="_znaDgOCTEdyaP_VatklqmA" base_Class="_zm9-oOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceEntity xmi:id="_0WpvIOCTEdyaP_VatklqmA" base_Class="_0WWNIOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceId xmi:id="_CZfXwOCUEdyaP_VatklqmA" base_Property="_1_G6sOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceId xmi:id="_NVr_kOCUEdyaP_VatklqmA" base_Property="_1NfQgOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceTransient xmi:id="_OvZkgOCUEdyaP_VatklqmA" base_Property="_8YvWQOCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorEmail xmi:id="_QQ2JIOCUEdyaP_VatklqmA" base_Property="_5bfiAOCTEdyaP_VatklqmA"/>
  <Taylor:nettaylorvalidatorUnique xmi:id="_UBphQOCUEdyaP_VatklqmA" property="id" message="Group id must be unique." base_Class="_0WWNIOCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorNotNull xmi:id="_2d_1IOCeEdyaP_VatklqmA" message="Group name must be entered." base_Property="_-NkJ4OCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorNotNull xmi:id="_3S5c0OCeEdyaP_VatklqmA" message="User name must be entered." base_Property="_4xeUoOCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorNotNull xmi:id="_78BkEOCeEdyaP_VatklqmA" message="Group id must be entered." base_Property="_1_G6sOCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorNotNull xmi:id="_8bw0EOCeEdyaP_VatklqmA" message="User id must be entered." base_Property="_1NfQgOCTEdyaP_VatklqmA"/>
  <Hibernate:orghibernatevalidatorNotNull xmi:id="_CLq9MOCfEdyaP_VatklqmA" message="User password must be entered." base_Property="_6LBhgOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_VNPwsOCfEdyaP_VatklqmA" fetch="LAZY" mappedBy="members" cascade="MERGE" base_Property="_VNF_sOCfEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_VNZhsOCfEdyaP_VatklqmA" fetch="LAZY" cascade="MERGE" base_Property="_VNF_s-CfEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceTable xmi:id="_0lDroOCgEdyaP_VatklqmA" name="TGroup" base_Class="_0WWNIOCTEdyaP_VatklqmA"/>
  <Persistence:javaxpersistenceTable xmi:id="_09y7wOCgEdyaP_VatklqmA" name="TUser" base_Class="_zm9-oOCTEdyaP_VatklqmA"/>
  <Taylor:nettaylorvalidatorUnique xmi:id="_Hsw-gOCwEdyaP_VatklqmA" property="id" message="User id must be unique." base_Class="_zm9-oOCTEdyaP_VatklqmA"/>
  <Ejb:javaxejbStateless xmi:id="_qFaXoOSrEdyvn79N1t5T-A" base_Interface="_qE9rsOSrEdyvn79N1t5T-A"/>
  <Taylor:Maven xmi:id="_yeKFgOcYEd2-HMcBOY55rw" base_Package="_byIQjuCTEdyaP_VatklqmA">
    <outputPatternOverrides xmi:id="_Butl0W1dEd6GRsEz-F3CxQ" source="/src/main/webapp/WEB-INF" target="/src/main/resources"/>
    <outputPatternOverrides xmi:id="_Butl0m1dEd6GRsEz-F3CxQ" source="/src/main/webapp" target="/src/main/resources"/>
    <suffixOverrides xmi:id="_Butl021dEd6GRsEz-F3CxQ" source="jpa"/>
    <suffixOverrides xmi:id="_Butl1G1dEd6GRsEz-F3CxQ" source="ejb" target=""/>
    <suffixOverrides xmi:id="_Butl1W1dEd6GRsEz-F3CxQ" source="web"/>
    <suffixOverrides xmi:id="_Butl1m1dEd6GRsEz-F3CxQ" source="doc"/>
    <suffixOverrides xmi:id="_Butl121dEd6GRsEz-F3CxQ" source="jsf"/>
    <excludeGenerators>net.taylor.mda.jawsgen</excludeGenerators>
    <excludeGenerators> net.taylor.mda.resultsgen</excludeGenerators>
  </Taylor:Maven>
  <Persistence:javaxpersistenceEntity xmi:id="_bdj_EG1cEd6GRsEz-F3CxQ" base_Class="_bc-JMG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceId xmi:id="_dLzCgG1cEd6GRsEz-F3CxQ" base_Property="_dLWWkG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceGeneratedValue xmi:id="_dL8McG1cEd6GRsEz-F3CxQ" base_Property="_dLWWkG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_gF2Y0G1cEd6GRsEz-F3CxQ" fetch="LAZY" mappedBy="users" cascade="MERGE" base_Property="_gFZs4W1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_gGAJ0G1cEd6GRsEz-F3CxQ" fetch="LAZY" cascade="MERGE" base_Property="_gFjd4m1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_gxDR8G1cEd6GRsEz-F3CxQ" fetch="LAZY" mappedBy="groups" cascade="MERGE" base_Property="_gwwXAG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_gxMb4G1cEd6GRsEz-F3CxQ" fetch="LAZY" cascade="MERGE" base_Property="_gwwXA21cEd6GRsEz-F3CxQ"/>
  <Taylor:nettaylorvalidatorUnique xmi:id="_otdu4G1cEd6GRsEz-F3CxQ" base_Class="_bc-JMG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceTable xmi:id="_p6LZoG1cEd6GRsEz-F3CxQ" name="TPermission" base_Class="_bc-JMG1cEd6GRsEz-F3CxQ"/>
  <Hibernate:orghibernateannotationsNaturalId xmi:id="_tfIuIG1cEd6GRsEz-F3CxQ" mutable="true" base_Property="_e_sCAG1cEd6GRsEz-F3CxQ"/>
  <Hibernate:orghibernateannotationsNaturalId xmi:id="_t9XiQG1cEd6GRsEz-F3CxQ" mutable="true" base_Property="_eMS2MG1cEd6GRsEz-F3CxQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_XBYawG_lEd6V_5tqMzbBwQ" fetch="LAZY" cascade="MERGE" base_Property="_XBFf0W_lEd6V_5tqMzbBwQ"/>
  <Persistence:javaxpersistenceManyToMany xmi:id="_XBiLwG_lEd6V_5tqMzbBwQ" base_Property="_XBFf1G_lEd6V_5tqMzbBwQ"/>
</xmi:XMI>
