All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.anaptecs.jeaf.services.usermanagement.UserManagementServiceProxy Maven / Gradle / Ivy

There is a newer version: 1.8.0
Show newest version
/*
 * anaptecs GmbH, Ricarda-Huch-Str. 71, 72760 Reutlingen, Germany
 * 
 * Copyright 2004 - 2019. All rights reserved.
 */
package com.anaptecs.jeaf.services.usermanagement;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.List;

import com.anaptecs.jeaf.core.api.MessageConstants;
import com.anaptecs.jeaf.core.api.Service;
import com.anaptecs.jeaf.core.api.ServiceObjectID;
import com.anaptecs.jeaf.core.api.jaas.UserPrincipal;
import com.anaptecs.jeaf.core.servicechannel.api.Command;
import com.anaptecs.jeaf.core.servicechannel.api.ServiceProxy;
import com.anaptecs.jeaf.core.spi.TransactionBehavior;
import com.anaptecs.jeaf.xfun.api.XFun;
import com.anaptecs.jeaf.xfun.api.errorhandling.ApplicationException;
import com.anaptecs.jeaf.xfun.api.errorhandling.FailureMessage;
import com.anaptecs.jeaf.xfun.api.errorhandling.JEAFSystemException;
import com.anaptecs.jeaf.xfun.api.trace.Trace;

/**
 * ServiceProxy class for JEAF service UserManagementService.
 */
public final class UserManagementServiceProxy extends ServiceProxy implements UserManagementService {
  /**
   * Serial version uid for the proxy class.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Initialize object.
   *
   * @param pTransactionBehavior Definition of transactional behavior. The Parameter must not be null.
   */
  public UserManagementServiceProxy( TransactionBehavior pTransactionBehavior ) {
    super(UserManagementService.class, pTransactionBehavior);
  }

  /**
   * Generated proxy implementation for method "getPerson".
   * 
   * Method returns the person with the passed id. An object with the passed id must exist.
   */
  public Person getPerson( ServiceObjectID pPersonID, PersonLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new GetPerson_ServiceObjectID_PersonLoadStrategy_UserManagementService_Command(pPersonID, pLoadStrategy);
      return (Person) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updatePerson".
   * 
   * Method updates the passed person the passed data. Besides the attributes of the person also its addresses will be
   * updated. This means that edited addresses will be updated, added address will be created and removed addresses will
   * be deleted.
   */
  public Person updatePerson( Person pPerson, PersonLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new UpdatePerson_Person_PersonLoadStrategy_UserManagementService_Command(pPerson, pLoadStrategy);
      return (Person) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createPerson".
   * 
   * Method creates a new person from the passed object.
   */
  public Person createPerson( Person pPerson, OrganizationalUnit pParentUnit, PersonLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new CreatePerson_Person_OrganizationalUnit_PersonLoadStrategy_UserManagementService_Command(
          pPerson, pParentUnit, pLoadStrategy);
      return (Person) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deletePerson".
   * 
   * Method deletes the passed person. The object that should be deleted must exist. This also deletes all addresses of
   * the person and its owned permissions.
   */
  public void deletePerson( Person pPerson ) {
    try {
      Command lCommand = new DeletePerson_Person_UserManagementService_Command(pPerson);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "queryPersons".
   * 
   * Method searches persons by the passed query criteria. As defined by class PersonQuery all the passed query criteria
   * are conjuncted by a logical AND.
   */
  @SuppressWarnings("unchecked")
  public List queryPersons( PersonQuery pPersonQuery, PersonLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new QueryPersons_PersonQuery_PersonLoadStrategy_UserManagementService_Command(pPersonQuery, pLoadStrategy);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getCurrentPerson".
   * 
   * Method returns the person object to the currently logged in user.
   */
  public Person getCurrentPerson( PersonLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new GetCurrentPerson_PersonLoadStrategy_UserManagementService_Command(pLoadStrategy);
      return (Person) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserAccount".
   * 
   * Method returns the user account with the passed login name.
   */
  public UserAccount getUserAccount( String pLoginName, UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new GetUserAccount_String_UserAccountLoadStrategy_UserManagementService_Command(pLoginName, pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserAccount".
   * 
   * Method returns the user account with the passed service object id.
   */
  public UserAccount getUserAccount( ServiceObjectID pUserAccountOID, UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new GetUserAccount_ServiceObjectID_UserAccountLoadStrategy_UserManagementService_Command(
          pUserAccountOID, pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createUserAccount".
   * 
   * Method creates a new user account from the passed object. Therefore the associated person to which the created
   * account should belong has to be set. The created user account will have the default role as defined for the user
   * management assigned.
   */
  public UserAccount createUserAccount( UserAccount pUserAccount, String pPassword,
      UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new CreateUserAccount_UserAccount_String_UserAccountLoadStrategy_UserManagementService_Command(
          pUserAccount, pPassword, pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deleteUserAccount".
   * 
   * Method deletes the passed user account.
   */
  public void deleteUserAccount( UserAccount pUserAccount ) {
    try {
      Command lCommand = new DeleteUserAccount_UserAccount_UserManagementService_Command(pUserAccount);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "queryUserAccounts".
   * 
   * Method searches for all user accounts that match the passed query criteria. If the passed query object defines more
   * than one criteria they are conjuncted by a logical AND.
   */
  @SuppressWarnings("unchecked")
  public List queryUserAccounts( UserAccountQuery pUserAccountQuery ) {
    try {
      Command lCommand = new QueryUserAccounts_UserAccountQuery_UserManagementService_Command(pUserAccountQuery);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getCurrentUserAccount".
   * 
   * Method returns the UserAccount object representing the current user.
   */
  public UserAccount getCurrentUserAccount( UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new GetCurrentUserAccount_UserAccountLoadStrategy_UserManagementService_Command(pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "lockUserAccount".
   * 
   * Method locks the passed account. If the account is already locked, nothing will happen.
   * 
   */
  public UserAccount lockUserAccount( UserAccount pAccount, UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new LockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command(pAccount,
          pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "changePassword".
   * 
   * Method changes the password of the current user to the passed value.
   */
  public boolean changePassword( String pCurrentPasword, String pNewPasword ) {
    try {
      Command lCommand = new ChangePassword_String_String_UserManagementService_Command(pCurrentPasword, pNewPasword);
      return (boolean) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "changePassword".
   * 
   * Method changes the password of the passed user account of the passed value.
   */
  public void changePassword( UserAccount pUserAccount, String pNewPassword ) {
    try {
      Command lCommand =
          new ChangePassword_UserAccount_String_UserManagementService_Command(pUserAccount, pNewPassword);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getOrganizationalUnit".
   * 
   * Method returns the organizational unit with the passed id. An object with the passed id must exist.
   */
  public OrganizationalUnit getOrganizationalUnit( ServiceObjectID pOrganizationlUnitID,
      OrganizationalUnitLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new GetOrganizationalUnit_ServiceObjectID_OrganizationalUnitLoadStrategy_UserManagementService_Command(
              pOrganizationlUnitID, pLoadStrategy);
      return (OrganizationalUnit) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createOrganizationalUnit".
   * 
   * Method creates a new organizational unit from the passed object. If a reference to a parent unit is set, the object
   * will be created as its child. If the unit has child units they will also be created. The name and acronym of the
   * organizational unit must be unique within the organization hierarchy.
   */
  public OrganizationalUnit createOrganizationalUnit( OrganizationalUnit pOrganizationalUnit,
      OrganizationalUnitLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new CreateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command(
              pOrganizationalUnit, pLoadStrategy);
      return (OrganizationalUnit) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateOrganizationalUnit".
   * 
   * Method updates the passed organizational unit to the passed values. Besides the attributes of the organizational
   * unit also its addresses will be updated. This means that edited addresses will be updated, added address will be
   * created and removed addresses will be deleted. The method does not recursively update all objects of the hierarchy.
   */
  public OrganizationalUnit updateOrganizationalUnit( OrganizationalUnit pOrganizationalUnit,
      OrganizationalUnitLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new UpdateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command(
              pOrganizationalUnit, pLoadStrategy);
      return (OrganizationalUnit) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deleteOrganizationalUnit".
   * 
   * Method deletes the passed organizational unit and all its child elements.
   */
  public void deleteOrganizationalUnit( OrganizationalUnit pOrganizationalUnit ) {
    try {
      Command lCommand =
          new DeleteOrganizationalUnit_OrganizationalUnit_UserManagementService_Command(pOrganizationalUnit);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "queryOrganizationalUnits".
   * 
   * Method queries all organizational units based on the passed query criteria. If the query object has more than one
   * attribute set they are conjuncted by a logical AND.
   */
  @SuppressWarnings("unchecked")
  public List queryOrganizationalUnits( OrganizationalUnitQuery pOrganizationalUnitQuery,
      OrganizationalUnitLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new QueryOrganizationalUnits_OrganizationalUnitQuery_OrganizationalUnitLoadStrategy_UserManagementService_Command(
              pOrganizationalUnitQuery, pLoadStrategy);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "addPersonToOrganizationalUnit".
   * 
   * Method adds the passed person to the passed organizational unit.
   */
  public void addPersonToOrganizationalUnit( Person pPerson, OrganizationalUnit pOrganizationalUnit ) {
    try {
      Command lCommand = new AddPersonToOrganizationalUnit_Person_OrganizationalUnit_UserManagementService_Command(
          pPerson, pOrganizationalUnit);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAllCountries".
   * 
   * Method returns all available countries from the database. The reference to all the states of a country is also set.
   */
  @SuppressWarnings("unchecked")
  public List getAllCountries( ) {
    try {
      Command lCommand = new GetAllCountries_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAllAddressTypes".
   * 
   * Method returns all available address types. The reference to all address subtypes is also set.
   */
  @SuppressWarnings("unchecked")
  public List getAllAddressTypes( ) {
    try {
      Command lCommand = new GetAllAddressTypes_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "activateUserAccount".
   * 
   * 
   */
  public UserAccount activateUserAccount( String pLoginName, String pActivationToken )
    throws UserManagementServiceApplicationException {
    try {
      Command lCommand =
          new ActivateUserAccount_String_String_UserManagementService_Command(pLoginName, pActivationToken);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (UserManagementServiceApplicationException e) {
      throw e;
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAddressType".
   * 
   * The Method gets the address type with the given Name.
   */
  public AddressType getAddressType( String pAddressTypeName ) throws UserManagementServiceSystemException {
    try {
      Command lCommand = new GetAddressType_String_UserManagementService_Command(pAddressTypeName);
      return (AddressType) this.executeCommand(lCommand);
    }
    catch (UserManagementServiceSystemException e) {
      throw e;
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAddressSybtype".
   * 
   * Gets the address subtype with to the given address type it belongs to.
   */
  public AddressSubtype getAddressSybtype( String pAddressSubtype, String pAddressType )
    throws UserManagementServiceSystemException {
    try {
      Command lCommand =
          new GetAddressSybtype_String_String_UserManagementService_Command(pAddressSubtype, pAddressType);
      return (AddressSubtype) this.executeCommand(lCommand);
    }
    catch (UserManagementServiceSystemException e) {
      throw e;
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateCurrentUserAccount".
   * 
   * The method updates a given user account object and according to the LoadStrategy its referenced objects.
   */
  public UserAccount updateCurrentUserAccount( UserAccount pUserAccount, UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new UpdateCurrentUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command(
          pUserAccount, pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserInfo".
   * 
   * Method returns a user info object of the user account with the passed service object id.
   */
  public UserInfo getUserInfo( ServiceObjectID pUserAccountOID ) {
    try {
      Command lCommand = new GetUserInfo_ServiceObjectID_UserManagementService_Command(pUserAccountOID);
      return (UserInfo) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserInfo".
   * 
   * Method returns the user info of the current user.
   */
  public UserInfo getUserInfo( ) {
    try {
      Command lCommand = new GetUserInfo_UserManagementService_Command();
      return (UserInfo) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserPrincipal".
   * 
   * Method returns a user principal object representing the user account with the passed id.
   */
  public UserPrincipal getUserPrincipal( ServiceObjectID pUserAccountOID ) {
    try {
      Command lCommand = new GetUserPrincipal_ServiceObjectID_UserManagementService_Command(pUserAccountOID);
      return (UserPrincipal) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getGroups".
   * 
   * Method returns all groups which have the current user as owner.
   */
  @SuppressWarnings("unchecked")
  public List getGroups( ) {
    try {
      Command lCommand = new GetGroups_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getGroup".
   * 
   * Method returns the group with the given service Id. The method never returns null.
   */
  public Group getGroup( ServiceObjectID pGroupID, GroupLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new GetGroup_ServiceObjectID_GroupLoadStrategy_UserManagementService_Command(pGroupID, pLoadStrategy);
      return (Group) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createGroup".
   * 
   * Method creates a new group with the current user as owner.
   */
  public Group createGroup( Group pGroup, GroupLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new CreateGroup_Group_GroupLoadStrategy_UserManagementService_Command(pGroup, pLoadStrategy);
      return (Group) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateGroup".
   * 
   * Method actualizes a group by the given group data.
   */
  public Group updateGroup( Group pGroup, GroupLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new UpdateGroup_Group_GroupLoadStrategy_UserManagementService_Command(pGroup, pLoadStrategy);
      return (Group) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deleteGroup".
   * 
   * Method deletes the given group from the storage.
   */
  public void deleteGroup( Group pGroup ) {
    try {
      Command lCommand = new DeleteGroup_Group_UserManagementService_Command(pGroup);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAllGroupTypes".
   * 
   * Method returns all existing GroupTypes from the database.
   */
  @SuppressWarnings("unchecked")
  public List getAllGroupTypes( ) {
    try {
      Command lCommand = new GetAllGroupTypes_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "addLinkedPerson".
   * 
   * Links a given person to a given group. The status of this link will be the same as the given link status.
   */
  public LinkStatusToken addLinkedPerson( LinkStatus pLinkStatus, Person pPerson, Group pGroup ) {
    try {
      Command lCommand =
          new AddLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command(pLinkStatus, pPerson, pGroup);
      return (LinkStatusToken) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deleteLinkedPerson".
   * 
   * Method deletes a person current user link. It doesn't delete the person or the group which are linked.
   */
  public void deleteLinkedPerson( Person pPerson, Group pGroup ) {
    try {
      Command lCommand = new DeleteLinkedPerson_Person_Group_UserManagementService_Command(pPerson, pGroup);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateLinkedPerson".
   * 
   * Updates the status of a link between a given person and a group. The method checks if the link which is defined by
   * the given person and group belongs to the current user.
   */
  public void updateLinkedPerson( LinkStatus pLinkStatus, Person pPerson, Group pGroup ) {
    try {
      Command lCommand =
          new UpdateLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command(pLinkStatus, pPerson, pGroup);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getLinkedPersonsByStatus".
   * 
   * Method returns all Persons which are linked to the current user and the link has the given status.
   */
  @SuppressWarnings("unchecked")
  public List getLinkedPersonsByStatus( LinkStatus pLinkStatus ) {
    try {
      Command lCommand = new GetLinkedPersonsByStatus_LinkStatus_UserManagementService_Command(pLinkStatus);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getUserInfos".
   * 
   * Method returns the UserInfo for the given person. The method never returns null.
   */
  @SuppressWarnings("unchecked")
  public List getUserInfos( List pPersonList ) {
    try {
      Command lCommand = new GetUserInfos_Person_UserManagementService_Command(pPersonList);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getRequestingContacts".
   * 
   * Method returns a list of persons who made a contact request to the current user. The method never returns null.
   */
  @SuppressWarnings("unchecked")
  public List getRequestingContacts( ) {
    try {
      Command lCommand = new GetRequestingContacts_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "resetPassword".
   * 
   * Method resets the password with a generated value and sends an email to the email address of the given user account
   * with this value. An informative email will also be sent to the support.
   */
  public String resetPassword( String pLoginName ) throws UserManagementServiceApplicationException {
    try {
      Command lCommand = new ResetPassword_String_UserManagementService_Command(pLoginName);
      return (String) this.executeCommand(lCommand);
    }
    catch (UserManagementServiceApplicationException e) {
      throw e;
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createOrganizationalUnitAccount".
   * 
   * Method creates a new organizational unit account from the passed organizational unit account and the additional
   * information. The current user will be the team admin of this organizational unit.
   */
  public OrganizationalUnitAccount createOrganizationalUnitAccount(
      OrganizationalUnitAccount pOrganizationalUnitAccount, OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new CreateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
              pOrganizationalUnitAccount, pLoadStrategy);
      return (OrganizationalUnitAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getOrganizationalUnitAccount".
   * 
   * Method returns the organizational unit account with the passed id. An object with the passed id must exist.
   */
  public OrganizationalUnitAccount getOrganizationalUnitAccount( ServiceObjectID pOrganizationalUnitAccountID,
      OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new GetOrganizationalUnitAccount_ServiceObjectID_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
              pOrganizationalUnitAccountID, pLoadStrategy);
      return (OrganizationalUnitAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAllOrganizationTypes".
   * 
   * Method returns all organization unit types.
   */
  @SuppressWarnings("unchecked")
  public List getAllOrganizationTypes( ) {
    try {
      Command lCommand = new GetAllOrganizationTypes_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getOrganizationUnitType".
   * 
   * Method returns the organization unit type with the given name.
   */
  public OrganizationUnitType getOrganizationUnitType( String pOrganizationUnitTypeName ) {
    try {
      Command lCommand = new GetOrganizationUnitType_String_UserManagementService_Command(pOrganizationUnitTypeName);
      return (OrganizationUnitType) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getGroupMemberUserInfos".
   * 
   * Method returns the user infos of the members of the given group.
   */
  @SuppressWarnings("unchecked")
  public List getGroupMemberUserInfos( Group pGroup ) {
    try {
      Command lCommand = new GetGroupMemberUserInfos_Group_UserManagementService_Command(pGroup);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateOrganizationalUnitAccount".
   * 
   * Method updates the given OrganziationalUnitAccount
   */
  public OrganizationalUnitAccount updateOrganizationalUnitAccount(
      OrganizationalUnitAccount pOrganizationalUnitAccount, OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand =
          new UpdateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
              pOrganizationalUnitAccount, pLoadStrategy);
      return (OrganizationalUnitAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getGroup".
   * 
   * The method returns the group with the given name, which belongs to the given organizational unit. The method may
   * return null if nor group with the given name exits in the organizational unit.
   */
  public Group getGroup( String pGroupName, OrganizationalUnit pParentUnit ) {
    try {
      Command lCommand = new GetGroup_String_OrganizationalUnit_UserManagementService_Command(pGroupName, pParentUnit);
      return (Group) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getOrganizationalUnitAccountGroupMembers".
   * 
   * Method returns the Group Members of the group with the given Name, that belongs to the OrganizationalUnitAccount.
   */
  @SuppressWarnings("unchecked")
  public List getOrganizationalUnitAccountGroupMembers( ServiceObjectID pOrgUnitAccountOID,
      String pGroupName ) {
    try {
      Command lCommand =
          new GetOrganizationalUnitAccountGroupMembers_ServiceObjectID_String_UserManagementService_Command(
              pOrgUnitAccountOID, pGroupName);
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "completeLogin".
   * 
   * Method completes a started login process.This means that the user principal and the person. Besides that also the
   * login counter and last login date will be updated.
   */
  public void completeLogin( ) {
    try {
      Command lCommand = new CompleteLogin_UserManagementService_Command();
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "unlockUserAccount".
   * 
   * Method unlocks the passed account. If the account is already unlocked, nothing will happen.
   * 
   */
  public UserAccount unlockUserAccount( UserAccount pAccount, UserAccountLoadStrategy pLoadStrategy ) {
    try {
      Command lCommand = new UnlockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command(
          pAccount, pLoadStrategy);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "createIdentityProvider".
   * 
   * Method creates a new identity provider based on the passed object. The identity provider is owned by the
   * organizational unit account to which the current user belongs to.
   */
  public IdentityProvider createIdentityProvider( IdentityProvider pIdentityProvider ) {
    try {
      Command lCommand = new CreateIdentityProvider_IdentityProvider_UserManagementService_Command(pIdentityProvider);
      return (IdentityProvider) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateIdentityProvider".
   * 
   * Method changes the passed identity provider to the passed values. All attributes of an identity provider can be
   * updated. The current user must belong to the organizational unit account to which the identity provider belongs to.
   */
  public void updateIdentityProvider( IdentityProvider pIdentityProvider ) {
    try {
      Command lCommand = new UpdateIdentityProvider_IdentityProvider_UserManagementService_Command(pIdentityProvider);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "deleteIdentityProvider".
   * 
   * Method deletes the passed identity provider. The current user must belong to the organizational unit account to
   * which the identity provider belongs to.
   */
  public void deleteIdentityProvider( IdentityProvider pIdentityProvider ) {
    try {
      Command lCommand = new DeleteIdentityProvider_IdentityProvider_UserManagementService_Command(pIdentityProvider);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "setLoginProvider".
   * 
   * Method sets the login provider for the organizational unit account to which the current user belongs.
   */
  public void setLoginProvider( IdentityProvider pLoginProvider ) {
    try {
      Command lCommand = new SetLoginProvider_IdentityProvider_UserManagementService_Command(pLoginProvider);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "setDirectoryService".
   * 
   * Method sets the login provider for the organizational unit account to which the current user belongs.
   */
  public void setDirectoryService( IdentityProvider pDirectoryService ) {
    try {
      Command lCommand = new SetDirectoryService_IdentityProvider_UserManagementService_Command(pDirectoryService);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAvailableLoginProviders".
   * 
   * Method returns all all identity providers that are available as login provider for the organizational unit account
   * to which the current user belongs to.
   */
  @SuppressWarnings("unchecked")
  public List getAvailableLoginProviders( ) {
    try {
      Command lCommand = new GetAvailableLoginProviders_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getAvailableDirectoryServices".
   * 
   * Method returns all all identity providers that are available as directory service for the organizational unit
   * account to which the current user belongs to.
   */
  @SuppressWarnings("unchecked")
  public List getAvailableDirectoryServices( ) {
    try {
      Command lCommand = new GetAvailableDirectoryServices_UserManagementService_Command();
      return (List) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "testConnection".
   * 
   * Method tests if the passed identity provider can connect to the defined service. The method can be used for
   * existing identity providers as well as for not yet created ones.
   */
  public FailureMessage testConnection( IdentityProvider pIdentityProvider ) {
    try {
      Command lCommand = new TestConnection_IdentityProvider_UserManagementService_Command(pIdentityProvider);
      return (FailureMessage) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getCurrentLoginProvider".
   * 
   * The method gets the login provider of the current user.
   */
  public IdentityProvider getCurrentLoginProvider( ) {
    try {
      Command lCommand = new GetCurrentLoginProvider_UserManagementService_Command();
      return (IdentityProvider) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getCurrentDirectoryService".
   * 
   * Method gets the current Directory Service of a user.
   */
  public IdentityProvider getCurrentDirectoryService( ) {
    try {
      Command lCommand = new GetCurrentDirectoryService_UserManagementService_Command();
      return (IdentityProvider) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "updateLinkStatusByToken".
   * 
   * Updates the status of a link between a person and a group. The status of the link is identified by the given link
   * status token.
   */
  public void updateLinkStatusByToken( LinkStatus pLinkStatus, LinkStatusToken pLinkStatusToken ) {
    try {
      Command lCommand = new UpdateLinkStatusByToken_LinkStatus_LinkStatusToken_UserManagementService_Command(
          pLinkStatus, pLinkStatusToken);
      this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }

  /**
   * Generated proxy implementation for method "getLinkedUserAccountByToken".
   * 
   * 
   */
  public UserAccount getLinkedUserAccountByToken( LinkStatusToken pLinkStatusToken ) {
    try {
      Command lCommand =
          new GetLinkedUserAccountByToken_LinkStatusToken_UserManagementService_Command(pLinkStatusToken);
      return (UserAccount) this.executeCommand(lCommand);
    }
    catch (ApplicationException e) {
      throw new JEAFSystemException(e.getErrorCode(), e, e.getMessageParameters());
    }
  }
}

/**
 * Generated command class for service method "getPerson".
 */
final class GetPerson_ServiceObjectID_PersonLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("getPerson", ServiceObjectID.class, PersonLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getPerson(ServiceObjectID.class, PersonLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPersonID" to the service implementation via the service channel.
   */
  private final ServiceObjectID personID;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final PersonLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getPerson" have to be passed as parameters to this command object.
   * 
   * @param pPersonID ServiceObjectID
   * @param pLoadStrategy PersonLoadStrategy
   */
  GetPerson_ServiceObjectID_PersonLoadStrategy_UserManagementService_Command( ServiceObjectID pPersonID,
      PersonLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    personID = pPersonID;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { personID, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getPerson(personID, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updatePerson".
 */
final class UpdatePerson_Person_PersonLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updatePerson", Person.class, PersonLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "updatePerson(Person.class, PersonLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final PersonLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "updatePerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pPerson Person
   * @param pLoadStrategy PersonLoadStrategy
   */
  UpdatePerson_Person_PersonLoadStrategy_UserManagementService_Command( Person pPerson,
      PersonLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    person = pPerson;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { person, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.updatePerson(person, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createPerson".
 */
final class CreatePerson_Person_OrganizationalUnit_PersonLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createPerson", Person.class, OrganizationalUnit.class,
          PersonLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "createPerson(Person.class, OrganizationalUnit.class, PersonLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pParentUnit" to the service implementation via the service channel.
   */
  private final OrganizationalUnit parentUnit;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final PersonLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "createPerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pPerson Person
   * @param pParentUnit OrganizationalUnit
   * @param pLoadStrategy PersonLoadStrategy
   */
  CreatePerson_Person_OrganizationalUnit_PersonLoadStrategy_UserManagementService_Command( Person pPerson,
      OrganizationalUnit pParentUnit, PersonLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    person = pPerson;
    parentUnit = pParentUnit;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { person, parentUnit, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.createPerson(person, parentUnit, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deletePerson".
 */
final class DeletePerson_Person_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deletePerson", Person.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deletePerson(Person.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Initialize object. All parameters from method "deletePerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pPerson Person
   */
  DeletePerson_Person_UserManagementService_Command( Person pPerson ) {
    super(UserManagementService.class);
    person = pPerson;
    parameters = new Object[] { person };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deletePerson(person);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "queryPersons".
 */
final class QueryPersons_PersonQuery_PersonLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("queryPersons", PersonQuery.class, PersonLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "queryPersons(PersonQuery.class, PersonLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPersonQuery" to the service implementation via the service channel.
   */
  private final PersonQuery personQuery;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final PersonLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "queryPersons" have to be passed as parameters to this command
   * object.
   * 
   * @param pPersonQuery PersonQuery
   * @param pLoadStrategy PersonLoadStrategy
   */
  QueryPersons_PersonQuery_PersonLoadStrategy_UserManagementService_Command( PersonQuery pPersonQuery,
      PersonLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    personQuery = pPersonQuery;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { personQuery, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.queryPersons(personQuery, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getCurrentPerson".
 */
final class GetCurrentPerson_PersonLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getCurrentPerson", PersonLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getCurrentPerson(PersonLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final PersonLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getCurrentPerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pLoadStrategy PersonLoadStrategy
   */
  GetCurrentPerson_PersonLoadStrategy_UserManagementService_Command( PersonLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getCurrentPerson(loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserAccount".
 */
final class GetUserAccount_String_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("getUserAccount", String.class, UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getUserAccount(String.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoginName" to the service implementation via the service channel.
   */
  private final String loginName;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pLoginName String
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  GetUserAccount_String_UserAccountLoadStrategy_UserManagementService_Command( String pLoginName,
      UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    loginName = pLoginName;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { loginName, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserAccount(loginName, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserAccount".
 */
final class GetUserAccount_ServiceObjectID_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("getUserAccount", ServiceObjectID.class, UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "getUserAccount(ServiceObjectID.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccountOID" to the service implementation via the service channel.
   */
  private final ServiceObjectID userAccountOID;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccountOID ServiceObjectID
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  GetUserAccount_ServiceObjectID_UserAccountLoadStrategy_UserManagementService_Command( ServiceObjectID pUserAccountOID,
      UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    userAccountOID = pUserAccountOID;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { userAccountOID, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserAccount(userAccountOID, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createUserAccount".
 */
final class CreateUserAccount_UserAccount_String_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createUserAccount", UserAccount.class, String.class,
          UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "createUserAccount(UserAccount.class, String.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccount" to the service implementation via the service channel.
   */
  private final UserAccount userAccount;

  /**
   * Attribute transports the method parameter "pPassword" to the service implementation via the service channel.
   */
  private final String password;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "createUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccount UserAccount
   * @param pPassword String
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  CreateUserAccount_UserAccount_String_UserAccountLoadStrategy_UserManagementService_Command( UserAccount pUserAccount,
      String pPassword, UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    userAccount = pUserAccount;
    password = pPassword;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { userAccount, password, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.createUserAccount(userAccount, password, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deleteUserAccount".
 */
final class DeleteUserAccount_UserAccount_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deleteUserAccount", UserAccount.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deleteUserAccount(UserAccount.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccount" to the service implementation via the service channel.
   */
  private final UserAccount userAccount;

  /**
   * Initialize object. All parameters from method "deleteUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccount UserAccount
   */
  DeleteUserAccount_UserAccount_UserManagementService_Command( UserAccount pUserAccount ) {
    super(UserManagementService.class);
    userAccount = pUserAccount;
    parameters = new Object[] { userAccount };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deleteUserAccount(userAccount);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "queryUserAccounts".
 */
final class QueryUserAccounts_UserAccountQuery_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("queryUserAccounts", UserAccountQuery.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "queryUserAccounts(UserAccountQuery.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccountQuery" to the service implementation via the service
   * channel.
   */
  private final UserAccountQuery userAccountQuery;

  /**
   * Initialize object. All parameters from method "queryUserAccounts" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccountQuery UserAccountQuery
   */
  QueryUserAccounts_UserAccountQuery_UserManagementService_Command( UserAccountQuery pUserAccountQuery ) {
    super(UserManagementService.class);
    userAccountQuery = pUserAccountQuery;
    parameters = new Object[] { userAccountQuery };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.queryUserAccounts(userAccountQuery);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getCurrentUserAccount".
 */
final class GetCurrentUserAccount_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getCurrentUserAccount", UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getCurrentUserAccount(UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getCurrentUserAccount" have to be passed as parameters to this
   * command object.
   * 
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  GetCurrentUserAccount_UserAccountLoadStrategy_UserManagementService_Command( UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getCurrentUserAccount(loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "lockUserAccount".
 */
final class LockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("lockUserAccount", UserAccount.class, UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "lockUserAccount(UserAccount.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pAccount" to the service implementation via the service channel.
   */
  private final UserAccount account;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "lockUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pAccount UserAccount
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  LockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command( UserAccount pAccount,
      UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    account = pAccount;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { account, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.lockUserAccount(account, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "changePassword".
 */
final class ChangePassword_String_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("changePassword", String.class, String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "changePassword(String.class, String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pCurrentPasword" to the service implementation via the service channel.
   */
  private final String currentPasword;

  /**
   * Attribute transports the method parameter "pNewPasword" to the service implementation via the service channel.
   */
  private final String newPasword;

  /**
   * Initialize object. All parameters from method "changePassword" have to be passed as parameters to this command
   * object.
   * 
   * @param pCurrentPasword String
   * @param pNewPasword String
   */
  ChangePassword_String_String_UserManagementService_Command( String pCurrentPasword, String pNewPasword ) {
    super(UserManagementService.class);
    currentPasword = pCurrentPasword;
    newPasword = pNewPasword;
    parameters = new Object[] { currentPasword, newPasword };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.changePassword(currentPasword, newPasword);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "changePassword".
 */
final class ChangePassword_UserAccount_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("changePassword", UserAccount.class, String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "changePassword(UserAccount.class, String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccount" to the service implementation via the service channel.
   */
  private final UserAccount userAccount;

  /**
   * Attribute transports the method parameter "pNewPassword" to the service implementation via the service channel.
   */
  private final String newPassword;

  /**
   * Initialize object. All parameters from method "changePassword" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccount UserAccount
   * @param pNewPassword String
   */
  ChangePassword_UserAccount_String_UserManagementService_Command( UserAccount pUserAccount, String pNewPassword ) {
    super(UserManagementService.class);
    userAccount = pUserAccount;
    newPassword = pNewPassword;
    parameters = new Object[] { userAccount, newPassword };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.changePassword(userAccount, newPassword);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getOrganizationalUnit".
 */
final class GetOrganizationalUnit_ServiceObjectID_OrganizationalUnitLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getOrganizationalUnit", ServiceObjectID.class,
          OrganizationalUnitLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "getOrganizationalUnit(ServiceObjectID.class, OrganizationalUnitLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationlUnitID" to the service implementation via the service
   * channel.
   */
  private final ServiceObjectID organizationlUnitID;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getOrganizationalUnit" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationlUnitID ServiceObjectID
   * @param pLoadStrategy OrganizationalUnitLoadStrategy
   */
  GetOrganizationalUnit_ServiceObjectID_OrganizationalUnitLoadStrategy_UserManagementService_Command(
      ServiceObjectID pOrganizationlUnitID, OrganizationalUnitLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationlUnitID = pOrganizationlUnitID;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationlUnitID, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getOrganizationalUnit(organizationlUnitID, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createOrganizationalUnit".
 */
final class CreateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createOrganizationalUnit", OrganizationalUnit.class,
          OrganizationalUnitLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "createOrganizationalUnit(OrganizationalUnit.class, OrganizationalUnitLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnit" to the service implementation via the service
   * channel.
   */
  private final OrganizationalUnit organizationalUnit;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "createOrganizationalUnit" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationalUnit OrganizationalUnit
   * @param pLoadStrategy OrganizationalUnitLoadStrategy
   */
  CreateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command(
      OrganizationalUnit pOrganizationalUnit, OrganizationalUnitLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnit = pOrganizationalUnit;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnit, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.createOrganizationalUnit(organizationalUnit, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateOrganizationalUnit".
 */
final class UpdateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updateOrganizationalUnit", OrganizationalUnit.class,
          OrganizationalUnitLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "updateOrganizationalUnit(OrganizationalUnit.class, OrganizationalUnitLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnit" to the service implementation via the service
   * channel.
   */
  private final OrganizationalUnit organizationalUnit;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "updateOrganizationalUnit" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationalUnit OrganizationalUnit
   * @param pLoadStrategy OrganizationalUnitLoadStrategy
   */
  UpdateOrganizationalUnit_OrganizationalUnit_OrganizationalUnitLoadStrategy_UserManagementService_Command(
      OrganizationalUnit pOrganizationalUnit, OrganizationalUnitLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnit = pOrganizationalUnit;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnit, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.updateOrganizationalUnit(organizationalUnit, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deleteOrganizationalUnit".
 */
final class DeleteOrganizationalUnit_OrganizationalUnit_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deleteOrganizationalUnit", OrganizationalUnit.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deleteOrganizationalUnit(OrganizationalUnit.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnit" to the service implementation via the service
   * channel.
   */
  private final OrganizationalUnit organizationalUnit;

  /**
   * Initialize object. All parameters from method "deleteOrganizationalUnit" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationalUnit OrganizationalUnit
   */
  DeleteOrganizationalUnit_OrganizationalUnit_UserManagementService_Command( OrganizationalUnit pOrganizationalUnit ) {
    super(UserManagementService.class);
    organizationalUnit = pOrganizationalUnit;
    parameters = new Object[] { organizationalUnit };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deleteOrganizationalUnit(organizationalUnit);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "queryOrganizationalUnits".
 */
final class QueryOrganizationalUnits_OrganizationalUnitQuery_OrganizationalUnitLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("queryOrganizationalUnits", OrganizationalUnitQuery.class,
          OrganizationalUnitLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "queryOrganizationalUnits(OrganizationalUnitQuery.class, OrganizationalUnitLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnitQuery" to the service implementation via the service
   * channel.
   */
  private final OrganizationalUnitQuery organizationalUnitQuery;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "queryOrganizationalUnits" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationalUnitQuery OrganizationalUnitQuery
   * @param pLoadStrategy OrganizationalUnitLoadStrategy
   */
  QueryOrganizationalUnits_OrganizationalUnitQuery_OrganizationalUnitLoadStrategy_UserManagementService_Command(
      OrganizationalUnitQuery pOrganizationalUnitQuery, OrganizationalUnitLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnitQuery = pOrganizationalUnitQuery;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnitQuery, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.queryOrganizationalUnits(organizationalUnitQuery, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "addPersonToOrganizationalUnit".
 */
final class AddPersonToOrganizationalUnit_Person_OrganizationalUnit_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("addPersonToOrganizationalUnit", Person.class,
          OrganizationalUnit.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "addPersonToOrganizationalUnit(Person.class, OrganizationalUnit.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pOrganizationalUnit" to the service implementation via the service
   * channel.
   */
  private final OrganizationalUnit organizationalUnit;

  /**
   * Initialize object. All parameters from method "addPersonToOrganizationalUnit" have to be passed as parameters to
   * this command object.
   * 
   * @param pPerson Person
   * @param pOrganizationalUnit OrganizationalUnit
   */
  AddPersonToOrganizationalUnit_Person_OrganizationalUnit_UserManagementService_Command( Person pPerson,
      OrganizationalUnit pOrganizationalUnit ) {
    super(UserManagementService.class);
    person = pPerson;
    organizationalUnit = pOrganizationalUnit;
    parameters = new Object[] { person, organizationalUnit };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.addPersonToOrganizationalUnit(person, organizationalUnit);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAllCountries".
 */
final class GetAllCountries_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAllCountries");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAllCountries(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAllCountries" have to be passed as parameters to this command
   * object.
   * 
   * 
   */
  GetAllCountries_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAllCountries();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAllAddressTypes".
 */
final class GetAllAddressTypes_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAllAddressTypes");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAllAddressTypes(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAllAddressTypes" have to be passed as parameters to this command
   * object.
   * 
   * 
   */
  GetAllAddressTypes_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAllAddressTypes();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "activateUserAccount".
 */
final class ActivateUserAccount_String_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("activateUserAccount", String.class, String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "activateUserAccount(String.class, String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoginName" to the service implementation via the service channel.
   */
  private final String loginName;

  /**
   * Attribute transports the method parameter "pActivationToken" to the service implementation via the service channel.
   */
  private final String activationToken;

  /**
   * Initialize object. All parameters from method "activateUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pLoginName String
   * @param pActivationToken String
   */
  ActivateUserAccount_String_String_UserManagementService_Command( String pLoginName, String pActivationToken ) {
    super(UserManagementService.class);
    loginName = pLoginName;
    activationToken = pActivationToken;
    parameters = new Object[] { loginName, activationToken };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) throws UserManagementServiceApplicationException {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.activateUserAccount(loginName, activationToken);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAddressType".
 */
final class GetAddressType_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAddressType", String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAddressType(String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pAddressTypeName" to the service implementation via the service channel.
   */
  private final String addressTypeName;

  /**
   * Initialize object. All parameters from method "getAddressType" have to be passed as parameters to this command
   * object.
   * 
   * @param pAddressTypeName String
   */
  GetAddressType_String_UserManagementService_Command( String pAddressTypeName ) {
    super(UserManagementService.class);
    addressTypeName = pAddressTypeName;
    parameters = new Object[] { addressTypeName };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) throws UserManagementServiceSystemException {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAddressType(addressTypeName);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAddressSybtype".
 */
final class GetAddressSybtype_String_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAddressSybtype", String.class, String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAddressSybtype(String.class, String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pAddressSubtype" to the service implementation via the service channel.
   */
  private final String addressSubtype;

  /**
   * Attribute transports the method parameter "pAddressType" to the service implementation via the service channel.
   */
  private final String addressType;

  /**
   * Initialize object. All parameters from method "getAddressSybtype" have to be passed as parameters to this command
   * object.
   * 
   * @param pAddressSubtype String
   * @param pAddressType String
   */
  GetAddressSybtype_String_String_UserManagementService_Command( String pAddressSubtype, String pAddressType ) {
    super(UserManagementService.class);
    addressSubtype = pAddressSubtype;
    addressType = pAddressType;
    parameters = new Object[] { addressSubtype, addressType };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) throws UserManagementServiceSystemException {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAddressSybtype(addressSubtype, addressType);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateCurrentUserAccount".
 */
final class UpdateCurrentUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updateCurrentUserAccount", UserAccount.class,
          UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "updateCurrentUserAccount(UserAccount.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccount" to the service implementation via the service channel.
   */
  private final UserAccount userAccount;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "updateCurrentUserAccount" have to be passed as parameters to this
   * command object.
   * 
   * @param pUserAccount UserAccount
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  UpdateCurrentUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command( UserAccount pUserAccount,
      UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    userAccount = pUserAccount;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { userAccount, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.updateCurrentUserAccount(userAccount, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserInfo".
 */
final class GetUserInfo_ServiceObjectID_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getUserInfo", ServiceObjectID.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getUserInfo(ServiceObjectID.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccountOID" to the service implementation via the service channel.
   */
  private final ServiceObjectID userAccountOID;

  /**
   * Initialize object. All parameters from method "getUserInfo" have to be passed as parameters to this command object.
   * 
   * @param pUserAccountOID ServiceObjectID
   */
  GetUserInfo_ServiceObjectID_UserManagementService_Command( ServiceObjectID pUserAccountOID ) {
    super(UserManagementService.class);
    userAccountOID = pUserAccountOID;
    parameters = new Object[] { userAccountOID };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserInfo(userAccountOID);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserInfo".
 */
final class GetUserInfo_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getUserInfo");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getUserInfo(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getUserInfo" have to be passed as parameters to this command object.
   * 
   * 
   */
  GetUserInfo_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserInfo();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserPrincipal".
 */
final class GetUserPrincipal_ServiceObjectID_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getUserPrincipal", ServiceObjectID.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getUserPrincipal(ServiceObjectID.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pUserAccountOID" to the service implementation via the service channel.
   */
  private final ServiceObjectID userAccountOID;

  /**
   * Initialize object. All parameters from method "getUserPrincipal" have to be passed as parameters to this command
   * object.
   * 
   * @param pUserAccountOID ServiceObjectID
   */
  GetUserPrincipal_ServiceObjectID_UserManagementService_Command( ServiceObjectID pUserAccountOID ) {
    super(UserManagementService.class);
    userAccountOID = pUserAccountOID;
    parameters = new Object[] { userAccountOID };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserPrincipal(userAccountOID);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getGroups".
 */
final class GetGroups_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getGroups");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getGroups(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getGroups" have to be passed as parameters to this command object.
   * 
   * 
   */
  GetGroups_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getGroups();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getGroup".
 */
final class GetGroup_ServiceObjectID_GroupLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("getGroup", ServiceObjectID.class, GroupLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getGroup(ServiceObjectID.class, GroupLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroupID" to the service implementation via the service channel.
   */
  private final ServiceObjectID groupID;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final GroupLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getGroup" have to be passed as parameters to this command object.
   * 
   * @param pGroupID ServiceObjectID
   * @param pLoadStrategy GroupLoadStrategy
   */
  GetGroup_ServiceObjectID_GroupLoadStrategy_UserManagementService_Command( ServiceObjectID pGroupID,
      GroupLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    groupID = pGroupID;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { groupID, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getGroup(groupID, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createGroup".
 */
final class CreateGroup_Group_GroupLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createGroup", Group.class, GroupLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "createGroup(Group.class, GroupLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final GroupLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "createGroup" have to be passed as parameters to this command object.
   * 
   * @param pGroup Group
   * @param pLoadStrategy GroupLoadStrategy
   */
  CreateGroup_Group_GroupLoadStrategy_UserManagementService_Command( Group pGroup, GroupLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    group = pGroup;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { group, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.createGroup(group, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateGroup".
 */
final class UpdateGroup_Group_GroupLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updateGroup", Group.class, GroupLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "updateGroup(Group.class, GroupLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final GroupLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "updateGroup" have to be passed as parameters to this command object.
   * 
   * @param pGroup Group
   * @param pLoadStrategy GroupLoadStrategy
   */
  UpdateGroup_Group_GroupLoadStrategy_UserManagementService_Command( Group pGroup, GroupLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    group = pGroup;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { group, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.updateGroup(group, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deleteGroup".
 */
final class DeleteGroup_Group_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deleteGroup", Group.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deleteGroup(Group.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Initialize object. All parameters from method "deleteGroup" have to be passed as parameters to this command object.
   * 
   * @param pGroup Group
   */
  DeleteGroup_Group_UserManagementService_Command( Group pGroup ) {
    super(UserManagementService.class);
    group = pGroup;
    parameters = new Object[] { group };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deleteGroup(group);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAllGroupTypes".
 */
final class GetAllGroupTypes_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAllGroupTypes");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAllGroupTypes(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAllGroupTypes" have to be passed as parameters to this command
   * object.
   * 
   * 
   */
  GetAllGroupTypes_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAllGroupTypes();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "addLinkedPerson".
 */
final class AddLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("addLinkedPerson", LinkStatus.class, Person.class, Group.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "addLinkedPerson(LinkStatus.class, Person.class, Group.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLinkStatus" to the service implementation via the service channel.
   */
  private final LinkStatus linkStatus;

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Initialize object. All parameters from method "addLinkedPerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pLinkStatus LinkStatus
   * @param pPerson Person
   * @param pGroup Group
   */
  AddLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command( LinkStatus pLinkStatus, Person pPerson,
      Group pGroup ) {
    super(UserManagementService.class);
    linkStatus = pLinkStatus;
    person = pPerson;
    group = pGroup;
    parameters = new Object[] { linkStatus, person, group };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.addLinkedPerson(linkStatus, person, group);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deleteLinkedPerson".
 */
final class DeleteLinkedPerson_Person_Group_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deleteLinkedPerson", Person.class, Group.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deleteLinkedPerson(Person.class, Group.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Initialize object. All parameters from method "deleteLinkedPerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pPerson Person
   * @param pGroup Group
   */
  DeleteLinkedPerson_Person_Group_UserManagementService_Command( Person pPerson, Group pGroup ) {
    super(UserManagementService.class);
    person = pPerson;
    group = pGroup;
    parameters = new Object[] { person, group };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deleteLinkedPerson(person, group);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateLinkedPerson".
 */
final class UpdateLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("updateLinkedPerson", LinkStatus.class, Person.class, Group.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "updateLinkedPerson(LinkStatus.class, Person.class, Group.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLinkStatus" to the service implementation via the service channel.
   */
  private final LinkStatus linkStatus;

  /**
   * Attribute transports the method parameter "pPerson" to the service implementation via the service channel.
   */
  private final Person person;

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Initialize object. All parameters from method "updateLinkedPerson" have to be passed as parameters to this command
   * object.
   * 
   * @param pLinkStatus LinkStatus
   * @param pPerson Person
   * @param pGroup Group
   */
  UpdateLinkedPerson_LinkStatus_Person_Group_UserManagementService_Command( LinkStatus pLinkStatus, Person pPerson,
      Group pGroup ) {
    super(UserManagementService.class);
    linkStatus = pLinkStatus;
    person = pPerson;
    group = pGroup;
    parameters = new Object[] { linkStatus, person, group };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.updateLinkedPerson(linkStatus, person, group);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getLinkedPersonsByStatus".
 */
final class GetLinkedPersonsByStatus_LinkStatus_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getLinkedPersonsByStatus", LinkStatus.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getLinkedPersonsByStatus(LinkStatus.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLinkStatus" to the service implementation via the service channel.
   */
  private final LinkStatus linkStatus;

  /**
   * Initialize object. All parameters from method "getLinkedPersonsByStatus" have to be passed as parameters to this
   * command object.
   * 
   * @param pLinkStatus LinkStatus
   */
  GetLinkedPersonsByStatus_LinkStatus_UserManagementService_Command( LinkStatus pLinkStatus ) {
    super(UserManagementService.class);
    linkStatus = pLinkStatus;
    parameters = new Object[] { linkStatus };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getLinkedPersonsByStatus(linkStatus);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getUserInfos".
 */
final class GetUserInfos_Person_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getUserInfos", List.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getUserInfos(List.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pPersonList" to the service implementation via the service channel.
   */
  private final List personList;

  /**
   * Initialize object. All parameters from method "getUserInfos" have to be passed as parameters to this command
   * object.
   * 
   * @param pPersonList List
   */
  GetUserInfos_Person_UserManagementService_Command( List pPersonList ) {
    super(UserManagementService.class);
    personList = pPersonList;
    parameters = new Object[] { personList };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getUserInfos(personList);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getRequestingContacts".
 */
final class GetRequestingContacts_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getRequestingContacts");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getRequestingContacts(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getRequestingContacts" have to be passed as parameters to this
   * command object.
   * 
   * 
   */
  GetRequestingContacts_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getRequestingContacts();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "resetPassword".
 */
final class ResetPassword_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("resetPassword", String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "resetPassword(String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoginName" to the service implementation via the service channel.
   */
  private final String loginName;

  /**
   * Initialize object. All parameters from method "resetPassword" have to be passed as parameters to this command
   * object.
   * 
   * @param pLoginName String
   */
  ResetPassword_String_UserManagementService_Command( String pLoginName ) {
    super(UserManagementService.class);
    loginName = pLoginName;
    parameters = new Object[] { loginName };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) throws UserManagementServiceApplicationException {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.resetPassword(loginName);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createOrganizationalUnitAccount".
 */
final class CreateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createOrganizationalUnitAccount",
          OrganizationalUnitAccount.class, OrganizationalUnitAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "createOrganizationalUnitAccount(OrganizationalUnitAccount.class, OrganizationalUnitAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnitAccount" to the service implementation via the
   * service channel.
   */
  private final OrganizationalUnitAccount organizationalUnitAccount;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "createOrganizationalUnitAccount" have to be passed as parameters to
   * this command object.
   * 
   * @param pOrganizationalUnitAccount OrganizationalUnitAccount
   * @param pLoadStrategy OrganizationalUnitAccountLoadStrategy
   */
  CreateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
      OrganizationalUnitAccount pOrganizationalUnitAccount, OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnitAccount = pOrganizationalUnitAccount;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnitAccount, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult =
        (Serializable) lService.createOrganizationalUnitAccount(organizationalUnitAccount, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getOrganizationalUnitAccount".
 */
final class GetOrganizationalUnitAccount_ServiceObjectID_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getOrganizationalUnitAccount", ServiceObjectID.class,
          OrganizationalUnitAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "getOrganizationalUnitAccount(ServiceObjectID.class, OrganizationalUnitAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnitAccountID" to the service implementation via the
   * service channel.
   */
  private final ServiceObjectID organizationalUnitAccountID;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "getOrganizationalUnitAccount" have to be passed as parameters to
   * this command object.
   * 
   * @param pOrganizationalUnitAccountID ServiceObjectID
   * @param pLoadStrategy OrganizationalUnitAccountLoadStrategy
   */
  GetOrganizationalUnitAccount_ServiceObjectID_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
      ServiceObjectID pOrganizationalUnitAccountID, OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnitAccountID = pOrganizationalUnitAccountID;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnitAccountID, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult =
        (Serializable) lService.getOrganizationalUnitAccount(organizationalUnitAccountID, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAllOrganizationTypes".
 */
final class GetAllOrganizationTypes_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAllOrganizationTypes");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAllOrganizationTypes(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAllOrganizationTypes" have to be passed as parameters to this
   * command object.
   * 
   * 
   */
  GetAllOrganizationTypes_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAllOrganizationTypes();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getOrganizationUnitType".
 */
final class GetOrganizationUnitType_String_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getOrganizationUnitType", String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getOrganizationUnitType(String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationUnitTypeName" to the service implementation via the service
   * channel.
   */
  private final String organizationUnitTypeName;

  /**
   * Initialize object. All parameters from method "getOrganizationUnitType" have to be passed as parameters to this
   * command object.
   * 
   * @param pOrganizationUnitTypeName String
   */
  GetOrganizationUnitType_String_UserManagementService_Command( String pOrganizationUnitTypeName ) {
    super(UserManagementService.class);
    organizationUnitTypeName = pOrganizationUnitTypeName;
    parameters = new Object[] { organizationUnitTypeName };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getOrganizationUnitType(organizationUnitTypeName);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getGroupMemberUserInfos".
 */
final class GetGroupMemberUserInfos_Group_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getGroupMemberUserInfos", Group.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getGroupMemberUserInfos(Group.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroup" to the service implementation via the service channel.
   */
  private final Group group;

  /**
   * Initialize object. All parameters from method "getGroupMemberUserInfos" have to be passed as parameters to this
   * command object.
   * 
   * @param pGroup Group
   */
  GetGroupMemberUserInfos_Group_UserManagementService_Command( Group pGroup ) {
    super(UserManagementService.class);
    group = pGroup;
    parameters = new Object[] { group };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getGroupMemberUserInfos(group);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateOrganizationalUnitAccount".
 */
final class UpdateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updateOrganizationalUnitAccount",
          OrganizationalUnitAccount.class, OrganizationalUnitAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "updateOrganizationalUnitAccount(OrganizationalUnitAccount.class, OrganizationalUnitAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrganizationalUnitAccount" to the service implementation via the
   * service channel.
   */
  private final OrganizationalUnitAccount organizationalUnitAccount;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final OrganizationalUnitAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "updateOrganizationalUnitAccount" have to be passed as parameters to
   * this command object.
   * 
   * @param pOrganizationalUnitAccount OrganizationalUnitAccount
   * @param pLoadStrategy OrganizationalUnitAccountLoadStrategy
   */
  UpdateOrganizationalUnitAccount_OrganizationalUnitAccount_OrganizationalUnitAccountLoadStrategy_UserManagementService_Command(
      OrganizationalUnitAccount pOrganizationalUnitAccount, OrganizationalUnitAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    organizationalUnitAccount = pOrganizationalUnitAccount;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { organizationalUnitAccount, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult =
        (Serializable) lService.updateOrganizationalUnitAccount(organizationalUnitAccount, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getGroup".
 */
final class GetGroup_String_OrganizationalUnit_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getGroup", String.class, OrganizationalUnit.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getGroup(String.class, OrganizationalUnit.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pGroupName" to the service implementation via the service channel.
   */
  private final String groupName;

  /**
   * Attribute transports the method parameter "pParentUnit" to the service implementation via the service channel.
   */
  private final OrganizationalUnit parentUnit;

  /**
   * Initialize object. All parameters from method "getGroup" have to be passed as parameters to this command object.
   * 
   * @param pGroupName String
   * @param pParentUnit OrganizationalUnit
   */
  GetGroup_String_OrganizationalUnit_UserManagementService_Command( String pGroupName,
      OrganizationalUnit pParentUnit ) {
    super(UserManagementService.class);
    groupName = pGroupName;
    parentUnit = pParentUnit;
    parameters = new Object[] { groupName, parentUnit };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getGroup(groupName, parentUnit);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getOrganizationalUnitAccountGroupMembers".
 */
final class GetOrganizationalUnitAccountGroupMembers_ServiceObjectID_String_UserManagementService_Command
    extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getOrganizationalUnitAccountGroupMembers",
          ServiceObjectID.class, String.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(),
          "getOrganizationalUnitAccountGroupMembers(ServiceObjectID.class, String.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pOrgUnitAccountOID" to the service implementation via the service
   * channel.
   */
  private final ServiceObjectID orgUnitAccountOID;

  /**
   * Attribute transports the method parameter "pGroupName" to the service implementation via the service channel.
   */
  private final String groupName;

  /**
   * Initialize object. All parameters from method "getOrganizationalUnitAccountGroupMembers" have to be passed as
   * parameters to this command object.
   * 
   * @param pOrgUnitAccountOID ServiceObjectID
   * @param pGroupName String
   */
  GetOrganizationalUnitAccountGroupMembers_ServiceObjectID_String_UserManagementService_Command(
      ServiceObjectID pOrgUnitAccountOID, String pGroupName ) {
    super(UserManagementService.class);
    orgUnitAccountOID = pOrgUnitAccountOID;
    groupName = pGroupName;
    parameters = new Object[] { orgUnitAccountOID, groupName };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult =
        (Serializable) lService.getOrganizationalUnitAccountGroupMembers(orgUnitAccountOID, groupName);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "completeLogin".
 */
final class CompleteLogin_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("completeLogin");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "completeLogin(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "completeLogin" have to be passed as parameters to this command
   * object.
   * 
   * 
   */
  CompleteLogin_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.completeLogin();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "unlockUserAccount".
 */
final class UnlockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("unlockUserAccount", UserAccount.class, UserAccountLoadStrategy.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "unlockUserAccount(UserAccount.class, UserAccountLoadStrategy.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pAccount" to the service implementation via the service channel.
   */
  private final UserAccount account;

  /**
   * Attribute transports the method parameter "pLoadStrategy" to the service implementation via the service channel.
   */
  private final UserAccountLoadStrategy loadStrategy;

  /**
   * Initialize object. All parameters from method "unlockUserAccount" have to be passed as parameters to this command
   * object.
   * 
   * @param pAccount UserAccount
   * @param pLoadStrategy UserAccountLoadStrategy
   */
  UnlockUserAccount_UserAccount_UserAccountLoadStrategy_UserManagementService_Command( UserAccount pAccount,
      UserAccountLoadStrategy pLoadStrategy ) {
    super(UserManagementService.class);
    account = pAccount;
    loadStrategy = pLoadStrategy;
    parameters = new Object[] { account, loadStrategy };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.unlockUserAccount(account, loadStrategy);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "createIdentityProvider".
 */
final class CreateIdentityProvider_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("createIdentityProvider", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "createIdentityProvider(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pIdentityProvider" to the service implementation via the service
   * channel.
   */
  private final IdentityProvider identityProvider;

  /**
   * Initialize object. All parameters from method "createIdentityProvider" have to be passed as parameters to this
   * command object.
   * 
   * @param pIdentityProvider IdentityProvider
   */
  CreateIdentityProvider_IdentityProvider_UserManagementService_Command( IdentityProvider pIdentityProvider ) {
    super(UserManagementService.class);
    identityProvider = pIdentityProvider;
    parameters = new Object[] { identityProvider };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.createIdentityProvider(identityProvider);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateIdentityProvider".
 */
final class UpdateIdentityProvider_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("updateIdentityProvider", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "updateIdentityProvider(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pIdentityProvider" to the service implementation via the service
   * channel.
   */
  private final IdentityProvider identityProvider;

  /**
   * Initialize object. All parameters from method "updateIdentityProvider" have to be passed as parameters to this
   * command object.
   * 
   * @param pIdentityProvider IdentityProvider
   */
  UpdateIdentityProvider_IdentityProvider_UserManagementService_Command( IdentityProvider pIdentityProvider ) {
    super(UserManagementService.class);
    identityProvider = pIdentityProvider;
    parameters = new Object[] { identityProvider };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.updateIdentityProvider(identityProvider);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "deleteIdentityProvider".
 */
final class DeleteIdentityProvider_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("deleteIdentityProvider", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "deleteIdentityProvider(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pIdentityProvider" to the service implementation via the service
   * channel.
   */
  private final IdentityProvider identityProvider;

  /**
   * Initialize object. All parameters from method "deleteIdentityProvider" have to be passed as parameters to this
   * command object.
   * 
   * @param pIdentityProvider IdentityProvider
   */
  DeleteIdentityProvider_IdentityProvider_UserManagementService_Command( IdentityProvider pIdentityProvider ) {
    super(UserManagementService.class);
    identityProvider = pIdentityProvider;
    parameters = new Object[] { identityProvider };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.deleteIdentityProvider(identityProvider);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "setLoginProvider".
 */
final class SetLoginProvider_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("setLoginProvider", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "setLoginProvider(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLoginProvider" to the service implementation via the service channel.
   */
  private final IdentityProvider loginProvider;

  /**
   * Initialize object. All parameters from method "setLoginProvider" have to be passed as parameters to this command
   * object.
   * 
   * @param pLoginProvider IdentityProvider
   */
  SetLoginProvider_IdentityProvider_UserManagementService_Command( IdentityProvider pLoginProvider ) {
    super(UserManagementService.class);
    loginProvider = pLoginProvider;
    parameters = new Object[] { loginProvider };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.setLoginProvider(loginProvider);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "setDirectoryService".
 */
final class SetDirectoryService_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("setDirectoryService", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "setDirectoryService(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pDirectoryService" to the service implementation via the service
   * channel.
   */
  private final IdentityProvider directoryService;

  /**
   * Initialize object. All parameters from method "setDirectoryService" have to be passed as parameters to this command
   * object.
   * 
   * @param pDirectoryService IdentityProvider
   */
  SetDirectoryService_IdentityProvider_UserManagementService_Command( IdentityProvider pDirectoryService ) {
    super(UserManagementService.class);
    directoryService = pDirectoryService;
    parameters = new Object[] { directoryService };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.setDirectoryService(directoryService);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAvailableLoginProviders".
 */
final class GetAvailableLoginProviders_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAvailableLoginProviders");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAvailableLoginProviders(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAvailableLoginProviders" have to be passed as parameters to this
   * command object.
   * 
   * 
   */
  GetAvailableLoginProviders_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAvailableLoginProviders();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getAvailableDirectoryServices".
 */
final class GetAvailableDirectoryServices_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getAvailableDirectoryServices");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getAvailableDirectoryServices(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getAvailableDirectoryServices" have to be passed as parameters to
   * this command object.
   * 
   * 
   */
  GetAvailableDirectoryServices_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getAvailableDirectoryServices();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "testConnection".
 */
final class TestConnection_IdentityProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("testConnection", IdentityProvider.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "testConnection(IdentityProvider.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pIdentityProvider" to the service implementation via the service
   * channel.
   */
  private final IdentityProvider identityProvider;

  /**
   * Initialize object. All parameters from method "testConnection" have to be passed as parameters to this command
   * object.
   * 
   * @param pIdentityProvider IdentityProvider
   */
  TestConnection_IdentityProvider_UserManagementService_Command( IdentityProvider pIdentityProvider ) {
    super(UserManagementService.class);
    identityProvider = pIdentityProvider;
    parameters = new Object[] { identityProvider };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.testConnection(identityProvider);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getCurrentLoginProvider".
 */
final class GetCurrentLoginProvider_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getCurrentLoginProvider");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getCurrentLoginProvider(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getCurrentLoginProvider" have to be passed as parameters to this
   * command object.
   * 
   * 
   */
  GetCurrentLoginProvider_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getCurrentLoginProvider();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getCurrentDirectoryService".
 */
final class GetCurrentDirectoryService_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getCurrentDirectoryService");
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getCurrentDirectoryService(null)");
    }
  }

  /**
   * Initialize object. All parameters from method "getCurrentDirectoryService" have to be passed as parameters to this
   * command object.
   * 
   * 
   */
  GetCurrentDirectoryService_UserManagementService_Command( ) {
    super(UserManagementService.class);
    parameters = new Object[] {};
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getCurrentDirectoryService();
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "updateLinkStatusByToken".
 */
final class UpdateLinkStatusByToken_LinkStatus_LinkStatusToken_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD =
          UserManagementService.class.getMethod("updateLinkStatusByToken", LinkStatus.class, LinkStatusToken.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "updateLinkStatusByToken(LinkStatus.class, LinkStatusToken.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLinkStatus" to the service implementation via the service channel.
   */
  private final LinkStatus linkStatus;

  /**
   * Attribute transports the method parameter "pLinkStatusToken" to the service implementation via the service channel.
   */
  private final LinkStatusToken linkStatusToken;

  /**
   * Initialize object. All parameters from method "updateLinkStatusByToken" have to be passed as parameters to this
   * command object.
   * 
   * @param pLinkStatus LinkStatus
   * @param pLinkStatusToken LinkStatusToken
   */
  UpdateLinkStatusByToken_LinkStatus_LinkStatusToken_UserManagementService_Command( LinkStatus pLinkStatus,
      LinkStatusToken pLinkStatusToken ) {
    super(UserManagementService.class);
    linkStatus = pLinkStatus;
    linkStatusToken = pLinkStatusToken;
    parameters = new Object[] { linkStatus, linkStatusToken };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    lService.updateLinkStatusByToken(linkStatus, linkStatusToken);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    // Method has no return type thus the method returns null.
    return null;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}

/**
 * Generated command class for service method "getLinkedUserAccountByToken".
 */
final class GetLinkedUserAccountByToken_LinkStatusToken_UserManagementService_Command extends Command {
  /**
   * Default serial version uid.
   */
  private static final long serialVersionUID = 1L;

  /**
   * Constant for factor to convert nano seconds to milliseconds.
   */
  private static final int MILLISECONDS = 1000 * 1000;

  /**
   * Constant describes the service method that is called by this proxy class.
   */
  private static final Method SERVICE_METHOD;

  /**
   * Object array with all parameters that are passed to the service.
   */
  private final Object[] parameters;
  /**
   * Initializer is used to get the method object describing the called service method only once.
   */
  static {
    try {
      SERVICE_METHOD = UserManagementService.class.getMethod("getLinkedUserAccountByToken", LinkStatusToken.class);
    }
    catch (NoSuchMethodException e) {
      throw new JEAFSystemException(MessageConstants.SERVICE_METHOD_DOES_NOT_EXIST, e,
          UserManagementService.class.getName(), "getLinkedUserAccountByToken(LinkStatusToken.class)");
    }
  }

  /**
   * Attribute transports the method parameter "pLinkStatusToken" to the service implementation via the service channel.
   */
  private final LinkStatusToken linkStatusToken;

  /**
   * Initialize object. All parameters from method "getLinkedUserAccountByToken" have to be passed as parameters to this
   * command object.
   * 
   * @param pLinkStatusToken LinkStatusToken
   */
  GetLinkedUserAccountByToken_LinkStatusToken_UserManagementService_Command( LinkStatusToken pLinkStatusToken ) {
    super(UserManagementService.class);
    linkStatusToken = pLinkStatusToken;
    parameters = new Object[] { linkStatusToken };
  }

  /**
   * Method executes the service call represented by this command object via JEAFs service channel.
   * 
   * @param pTargetService Reference to the service which should be called by this command. The parameter must not be
   * null.
   * @return Serializable Result object of the service call. Due to the fact that all returned objects of remote calls
   * in Java (EJBs e.g.) have to be serializable services always have to return serializable objects no matter if it
   * will be serialized or not. If a service method has no return type (void) then the method returns null. Service
   * methods also may return null as return value.
   */
  @Override
  public Serializable execute( Service pTargetService ) {
    // Execute service call.
    UserManagementService lService = (UserManagementService) pTargetService;
    // Trace service call.
    Trace lTrace = XFun.getTrace();
    lTrace.write(MessageConstants.EXECUTING_SERVICE_CALL, this.getCalledServiceMethod());
    long lStartTime = System.nanoTime();
    Serializable lResult = (Serializable) lService.getLinkedUserAccountByToken(linkStatusToken);
    // Calculate duration of service call in milliseconds
    String lDuration = Long.toString((System.nanoTime() - lStartTime) / MILLISECONDS);
    // Trace result of service call.
    lTrace.write(MessageConstants.RETURNING_FROM_SERVICE_CALL, this.getCalledServiceMethod(), lDuration);
    return lResult;
  }

  /**
   * Method returns a method object describing the service method that will be called by this command object.
   * 
   * @return {@link Method} Method object describing the called service method. The method never returns null.
   */
  @Override
  public final Method getServiceMethod( ) {
    return SERVICE_METHOD;
  }

  /**
   * Method returns all parameters that will be passed to the service.
   * 
   * @return {@link Object} Object array with all parameters that will be passed to the service. The method may return
   * an empty array in case that the method has no parameters.
   */
  @Override
  public Object[] getParameters( ) {
    return parameters;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy