/**
  * <penPageSequence>select o from UserDocument o where o.penPageSequence = :document and
  * o.documentType.formId = :docType</penPageSequence>
  *
  * <p>tenta localizar um registro no banco de dados com os dados do documento e o tipo do
  * documento
  *
  * @param entity Entity Bean com os dados a serem localizados no banco de dados
  * @return UserDocument Entity Bean
  * @exception InvalidParameterException
  */
 @Override
 public UserDocument find(UserDocument entity) {
   if (entity == null) {
     throw new InvalidParameterException("O parametro nao pode ser nulo ou vazio ");
   }
   return find(entity.getCode(), entity.getDocumentType().getId());
 }
 private void unlinkToUser(UserDocument entity) {
   if (entity != null) {
     Users user = entity.getUser();
     if (user != null) {
       user.removeDocument(entity);
     }
   }
 }
 @Override
 public UserDocument add(UserDocument entity) throws ApplicationException {
   linkToDocumentType(entity);
   entity = super.add(entity);
   entity.getUser().addDocument(entity);
   linkToUser(entity);
   return entity;
 }
 private void linkToDocumentType(UserDocument entity) throws ApplicationException {
   if (entity == null || entity.getDocumentType() == null) {
     return;
   }
   entity.setDocumentType(docmentTypeSession.get(entity.getDocumentType().getId()));
 }