Example usage for org.apache.commons.lang BooleanUtils isFalse

List of usage examples for org.apache.commons.lang BooleanUtils isFalse

Introduction

In this page you can find the example usage for org.apache.commons.lang BooleanUtils isFalse.

Prototype

public static boolean isFalse(Boolean bool) 

Source Link

Document

Checks if a Boolean value is false, handling null by returning false.

 BooleanUtils.isFalse(Boolean.TRUE)  = false BooleanUtils.isFalse(Boolean.FALSE) = true BooleanUtils.isFalse(null)          = false 

Usage

From source file:com.evolveum.midpoint.security.enforcer.impl.SecurityEnforcerImpl.java

private <O extends ObjectType> boolean matchesRoleRelation(PrismObject<O> object,
        ObjectReferenceType subjectRoleMembershipRef, RoleRelationObjectSpecificationType specRoleRelation,
        String autzHumanReadableDesc, String desc) throws SchemaException {
    if (!MiscSchemaUtil.compareRelation(specRoleRelation.getSubjectRelation(),
            subjectRoleMembershipRef.getRelation())) {
        return false;
    }//w  ww.  j  ava  2  s.  c  o  m
    if (BooleanUtils.isTrue(specRoleRelation.isIncludeReferenceRole())
            && subjectRoleMembershipRef.getOid().equals(object.getOid())) {
        return true;
    }
    if (!BooleanUtils.isFalse(specRoleRelation.isIncludeMembers())) {
        if (!object.canRepresent(FocusType.class)) {
            return false;
        }
        for (ObjectReferenceType objectRoleMembershipRef : ((FocusType) object.asObjectable())
                .getRoleMembershipRef()) {
            if (!subjectRoleMembershipRef.getOid().equals(objectRoleMembershipRef.getOid())) {
                continue;
            }
            if (!MiscSchemaUtil.compareRelation(specRoleRelation.getObjectRelation(),
                    objectRoleMembershipRef.getRelation())) {
                continue;
            }
            return true;
        }
    }
    return false;
}

From source file:com.square.core.service.implementations.PersonneServiceImplementation.java

private Telephone creerOuMettreAJourTelephone(Set<Personne> personnes, TelephoneDto telephoneDto,
        Boolean impacterFamille) {
    // Vrification des dpendances
    final NatureTelephone natureTelephone = natureTelephoneDao
            .rechercherNatureTelephoneParId(telephoneDto.getNature().getIdentifiant());
    if (natureTelephone == null) {
        throw new BusinessException(messageSourceUtil
                .get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_NATURE_TELEPHONE_INEXISTENT_EN_BD));
    }/*from   www.j a  va 2s.c o  m*/

    final Pays paysTelephone = paysDao.rechercherPaysParId(telephoneDto.getPays().getId());
    if (paysTelephone == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PAYS_INEXISTENT_EN_BD));
    }
    // On construit la liste des identifiants des persones de la famille
    final Set<Long> idsPersonnes = new LinkedHashSet<Long>();
    for (Personne personne : personnes) {
        idsPersonnes.add(personne.getId());
    }
    // On construit la liste des personnes associes au tlphone en cas de restauration
    final Set<Personne> nouvellesPersonnes = new LinkedHashSet<Personne>();
    Long idPersonneModifie = null;
    for (Personne personne : personnes) {
        if (idPersonneModifie == null) {
            idPersonneModifie = personne.getId();
        }
        nouvellesPersonnes.add(personne);
        if (BooleanUtils.isFalse(impacterFamille)) {
            break;
        }
    }
    // On supprime le formatage du numro de tlphone pour stocker les donnes brutes seulement
    final String numeroTelephone = formatUtil.supprimerFormatNumTel(telephoneDto.getNumero());
    Telephone telephone;
    final Calendar maintenant = Calendar.getInstance();

    if (telephoneDto.getId() != null) {
        // si le tlphone est  supprimer
        if (BooleanUtils.isTrue(telephoneDto.getSupprime())) {
            final Telephone tel = telephoneDao.rechercherTelephoneParId(telephoneDto.getId());
            supprimerTelephone(tel, maintenant);
            return tel;
        } else {
            // MODE MISE A JOUR
            // On rcupre le tlphone  mettre  jour
            telephone = telephoneDao.rechercherTelephoneParId(telephoneDto.getId());
            if (telephone == null) {
                throw new BusinessException(messageSourceUtil
                        .get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_TELEPHONE_INEXISTENT_EN_BD));
            }
            // On vrifie que le tlphone n'existe pas dj dans la liste des tlphones de la personne
            final CritereRechercheTelephone critereTel = new CritereRechercheTelephone();
            critereTel.setIdsPersonnes(idsPersonnes);
            critereTel.getIdsTelExclus().add(telephoneDto.getId());
            critereTel.setNumeroTelephone(numeroTelephone);
            critereTel.setIsSupprime(null);
            final List<Telephone> listeTelephones = telephoneDao.rechercherTelephoneParCritere(critereTel);
            if (listeTelephones != null && listeTelephones.size() > 0) {
                // Ce tlphone existe dj, on le rcupre
                final Telephone telExistant = listeTelephones.get(0);
                // On le restaure
                restaurerTelephone(telExistant, nouvellesPersonnes, maintenant);
                // On supprime l'ancien tlphone
                supprimerTelephone(telephone, maintenant);
                return telExistant;
            } else {
                // MISE A JOUR DU TELEPHONE
                telephone.setDateModification(maintenant);
                telephone.setNumTelephone(numeroTelephone);
                telephone.setPays(paysTelephone);
                telephone.setNatureTelephone(natureTelephone);
                return telephone;
            }
        }
    } else {
        // MODE CREATION
        // On vrifie que le tlphone n'existe pas dj dans la liste des tlphones de la personne
        final CritereRechercheTelephone critereTel = new CritereRechercheTelephone();
        critereTel.setIdsPersonnes(idsPersonnes);
        critereTel.setNumeroTelephone(numeroTelephone);
        critereTel.setIsSupprime(null);
        final List<Telephone> listeTelephones = telephoneDao.rechercherTelephoneParCritere(critereTel);
        if (listeTelephones != null && listeTelephones.size() > 0) {
            // Le tlphone existe dj, on le rcupre
            telephone = listeTelephones.get(0);

            // si le tlphone est de diffrente nature on lui change sa nature
            if (telephoneDto.getNature() != null && (telephone.getNatureTelephone() == null || !telephone
                    .getNatureTelephone().getId().equals(telephoneDto.getNature().getIdentifiant()))) {
                telephone.setNatureTelephone(natureTelephone);
                return telephone;
            }

            // Mantis 8288 On vrifie que la liste des personnes rataches au numro ne contient
            // que la personne sur laquelle on veux changer le numro
            final List<String> listeNumerosPersonneFamilleConcernees = new ArrayList<String>();
            for (Personne personneTel : telephone.getPersonnes()) {
                if (!idPersonneModifie.equals(personneTel.getId())) {
                    listeNumerosPersonneFamilleConcernees.add(personneTel.getNum());
                }
            }
            if (listeNumerosPersonneFamilleConcernees.size() > 0 && !telephone.isSupprime()) {
                String messageErreur = "Certains membres de la famille possdent dj le numro de tlphone "
                        + telephone.getNumTelephone()
                        + ", veuillez d'abord leur supprimer ou bien ne pas demander  les impacter. Les numros des personnes concernes sont : ";
                final int nbNum = listeNumerosPersonneFamilleConcernees.size();
                int compteur = 0;
                for (String num : listeNumerosPersonneFamilleConcernees) {
                    compteur++;
                    messageErreur = messageErreur + num + (compteur == nbNum ? "." : ", ");
                }
                throw new BusinessException(messageErreur);
            }

            // On restaure le tlphone
            restaurerTelephone(telephone, nouvellesPersonnes, maintenant);

            return telephone;
        } else {
            // CREATION D'UN NOUVEAU TELEPHONE
            telephone = new Telephone();
            telephone.setDateCreation(maintenant);
            telephone.setNumTelephone(numeroTelephone);
            telephone.setPays(paysTelephone);
            telephone.setNatureTelephone(natureTelephone);
            if (telephoneDto.getIdext() != null) {
                telephone.setIdentifiantExterieur(telephoneDto.getIdext());
            }
            return telephone;
        }
    }
}

From source file:com.square.tarificateur.noyau.service.implementations.TarificateurServiceImpl.java

/**
 * Cr un devis pour la personne passe en paramtre rattach  l'opportunit spcifie.
 * @param opportunite l'opportunit auquel le devis cr sera rattach
 * @param personne la personne cible par le devis.
 * @return le devis cr./*from   w  w w.j  ava 2s.c o m*/
 */
private Devis createDevis(Opportunite opportunite, PersonneTarificateurDto personneCiblee,
        Boolean origineSiteWeb, Long eidRelationParrain) {

    // Vrification que la famille est ligible
    if (!opportuniteServiceSquare.isFamilleEligiblePourOpportunite(personneCiblee.getEidPersonne())) {
        logger.error(messageSourceUtil.get(MessageKeyUtil.LOGGER_ERROR_FAMILLE_NON_ELIGIBLE,
                new String[] { String.valueOf(personneCiblee.getId()) }));
        throw new BusinessException(
                messageSourceUtil.get(MessageKeyUtil.ERREUR_CREATION_DEVIS_FAMILLE_NON_ELIGIBLE));
    }

    // Remplissage des adresses vides
    remplirAdressesVidesFamilleDevis(personneCiblee);

    // Vrification des champs obligatoires de la personne
    verifierChampsPersonne(personneCiblee);

    final Personne personne = mapperDozerBean.map(personneCiblee, Personne.class);

    // On initialise le devis
    final Calendar now = Calendar.getInstance();
    final Finalite finaliteParDefaut = finaliteDao
            .getFinaliteById(tarificateurSquareMappingService.getIdFinaliteNonRenseignee());
    final Devis devis = new Devis();
    devis.setDateCreation(now);
    devis.setEidCreateur(opportunite.getEidCreateur());
    devis.setOpportunite(opportunite);
    devis.setFinalite(finaliteParDefaut);
    devis.setPersonnePrincipale(personne);
    devis.setOrigineSiteWeb(origineSiteWeb);
    devis.setEidRelationParrain(eidRelationParrain);
    devis.setListeAssuresSociaux(new HashSet<Personne>());
    // On sauvegarde le devis pour avoir un id
    devisDao.saveDevis(devis);

    final Map<Long, Personne> mapPersonnesDevisParEid = new HashMap<Long, Personne>();
    mapPersonnesDevisParEid.put(personne.getEidPersonne(), personne);

    // on mappe les infos de sant  la main
    if (personneCiblee.getInfoSante() != null) {
        personne.setInfoSante(new InfoSante());
        personne.getInfoSante().setNumSecuriteSocial(personneCiblee.getInfoSante().getNumSecuriteSocial());
        personne.getInfoSante().setCleSecuriteSocial(personneCiblee.getInfoSante().getCleSecuriteSocial());
        personne.getInfoSante().setEidCaisse(personneCiblee.getInfoSante().getEidCaisse());
        // la personne principale est par dfaut son propre referent, on redirigera vers un assur social plus bas si ncessaire
        personne.getInfoSante().setReferent(personne);
    }

    // Mapping manuel des bnficiaires
    for (BeneficiaireTarificateurDto beneficiaireParcouru : personneCiblee.getListeBeneficiaires()) {
        if (!BooleanUtils.isFalse(beneficiaireParcouru.getActif())) {
            final Beneficiaire beneficiaire = new Beneficiaire();
            beneficiaire.setPersonneSource(personne);
            beneficiaire.setPersonneCible((Personne) mapperDozerBean.map(beneficiaireParcouru, Personne.class));
            // on mappe les infos de sant  la main si le benef est son propre referent
            if (beneficiaireParcouru.getInfoSante() != null
                    && beneficiaireParcouru.getInfoSante().getEidReferent() != null && beneficiaireParcouru
                            .getInfoSante().getEidReferent().equals(beneficiaireParcouru.getEidPersonne())) {
                beneficiaire.getPersonneCible().setInfoSante(new InfoSante());
                beneficiaire.getPersonneCible().getInfoSante()
                        .setNumSecuriteSocial(beneficiaireParcouru.getInfoSante().getNumSecuriteSocial());
                beneficiaire.getPersonneCible().getInfoSante()
                        .setCleSecuriteSocial(beneficiaireParcouru.getInfoSante().getCleSecuriteSocial());
                beneficiaire.getPersonneCible().getInfoSante()
                        .setEidCaisse(beneficiaireParcouru.getInfoSante().getEidCaisse());
                // le bnficiaire est par dfaut son propre referent, on redirigera vers un assur social plus bas si ncessaire
                beneficiaire.getPersonneCible().getInfoSante().setReferent(beneficiaire.getPersonneCible());
            }
            final LienFamilial lienFamilial = lienFamilialDao
                    .getLienFamilial(beneficiaireParcouru.getIdLienFamilial());
            if (lienFamilial == null) {
                throw new BusinessException(
                        messageSourceUtil.get(MessageKeyUtil.ERROR_CREATE_DEVIS_LIEN_FAMILIAL_NULL,
                                new String[] { beneficiaireParcouru.getIdLienFamilial().toString() }));
            }
            beneficiaire.setLienFamilial(lienFamilial);
            personne.getListeBeneficiaires().add(beneficiaire);
            mapPersonnesDevisParEid.put(beneficiaire.getPersonneCible().getEidPersonne(),
                    beneficiaire.getPersonneCible());
        }
    }

    // On ajoute les assurs sociaux des bnficiaires au devis s'ils en ont un
    for (BeneficiaireTarificateurDto beneficiaireParcouru : personneCiblee.getListeBeneficiaires()) {
        if (!BooleanUtils.isFalse(beneficiaireParcouru.getActif())) {
            if (beneficiaireParcouru.getInfoSante() != null
                    && beneficiaireParcouru.getInfoSante().getEidReferent() != null && !beneficiaireParcouru
                            .getInfoSante().getEidReferent().equals(beneficiaireParcouru.getEidPersonne())) {
                Personne assureSocial = mapPersonnesDevisParEid
                        .get(beneficiaireParcouru.getInfoSante().getEidReferent());
                if (assureSocial == null) {
                    final com.square.core.model.dto.PersonneDto personneDto = personnePhysiqueService
                            .rechercherPersonneParIdentifiant(
                                    beneficiaireParcouru.getInfoSante().getEidReferent());
                    PersonneDto assureSocialDto = mapperDozerBean.map(personneDto, PersonneDto.class);
                    assureSocialDto.getInfoSante()
                            .setNumSecuriteSocial(personneDto.getInfoSante().getNro().substring(0, TREIZE));
                    assureSocialDto.getInfoSante().setCleSecuriteSocial(
                            personneDto.getInfoSante().getNro().substring(TREIZE, QUINZE));
                    assureSocialDto = tarificateurPersonneService.createAssureSocial(assureSocialDto,
                            devis.getId(), true);
                    assureSocial = personneDao.getPersonne(assureSocialDto.getId());
                    mapPersonnesDevisParEid.put(assureSocial.getEidPersonne(), assureSocial);
                }
                final Personne beneficiaire = mapPersonnesDevisParEid
                        .get(beneficiaireParcouru.getEidPersonne());
                beneficiaire.setInfoSante(assureSocial.getInfoSante());
            }
        }
    }

    // On ajoute l'assur social de la personne principale au devis s'il en a un
    if (personneCiblee.getInfoSante() != null && personneCiblee.getInfoSante().getEidReferent() != null
            && !personneCiblee.getInfoSante().getEidReferent().equals(personneCiblee.getEidPersonne())) {
        Personne assureSocial = mapPersonnesDevisParEid.get(personneCiblee.getInfoSante().getEidReferent());
        if (assureSocial == null) {
            // On vrifie que les 2 personnes ont une relation active
            final RelationCriteresRechercheDto criteresRelation = new RelationCriteresRechercheDto();
            criteresRelation.setIdPersonneSource(personneCiblee.getEidPersonne());
            criteresRelation.setIdPersonneCible(personneCiblee.getInfoSante().getEidReferent());
            final RemotePagingCriteriasDto<RelationCriteresRechercheDto> criterias = new RemotePagingCriteriasDto<RelationCriteresRechercheDto>(
                    criteresRelation, 0, Integer.MAX_VALUE);
            final RemotePagingResultsDto<RelationInfosDto<? extends PersonneRelationDto>> relations = personneService
                    .rechercherRelationsParCritreres(criterias);
            if (!relations.getListResults().isEmpty()) {
                final com.square.core.model.dto.PersonneDto personneDto = personnePhysiqueService
                        .rechercherPersonneParIdentifiant(personneCiblee.getInfoSante().getEidReferent());
                PersonneDto assureSocialDto = mapperDozerBean.map(personneDto, PersonneDto.class);
                assureSocialDto.getInfoSante()
                        .setNumSecuriteSocial(personneDto.getInfoSante().getNro().substring(0, TREIZE));
                assureSocialDto.getInfoSante()
                        .setCleSecuriteSocial(personneDto.getInfoSante().getNro().substring(TREIZE, QUINZE));
                assureSocialDto = tarificateurPersonneService.createAssureSocial(assureSocialDto, devis.getId(),
                        true);
                assureSocial = personneDao.getPersonne(assureSocialDto.getId());
                mapPersonnesDevisParEid.put(assureSocial.getEidPersonne(), assureSocial);
            }
        }
        if (assureSocial != null) {
            personne.setInfoSante(assureSocial.getInfoSante());
        }
    }

    // on sauvegarde le devis a nouveau pour persister en cascade les elements references
    devisDao.saveDevis(devis);
    return devis;
}

From source file:com.evolveum.midpoint.security.enforcer.impl.SecurityEnforcerImpl.java

/**
 * Very rudimentary and experimental implementation.
 *//*  www. j  a  va 2 s  . c  om*/
private ObjectFilter processRoleRelationFilter(MidPointPrincipal principal, Authorization autz,
        RoleRelationObjectSpecificationType specRoleRelation, AutzItemPaths queryItemsSpec,
        ObjectFilter origFilter) {
    ObjectFilter refRoleFilter = null;
    if (BooleanUtils.isTrue(specRoleRelation.isIncludeReferenceRole())) {
        // This could mean that we will need to add filters for all roles in
        // subject's roleMembershipRef. There may be thousands of these.
        if (!autz.maySkipOnSearch()) {
            throw new UnsupportedOperationException(
                    "Inefficient roleRelation search (includeReferenceRole=true) is not supported yet");
        }
    }

    ObjectFilter membersFilter = null;
    if (!BooleanUtils.isFalse(specRoleRelation.isIncludeMembers())) {
        List<PrismReferenceValue> queryRoleRefs = getRoleOidsFromFilter(origFilter);
        if (queryRoleRefs == null || queryRoleRefs.isEmpty()) {
            // Cannot find specific role OID in original query. This could mean that we
            // will need to add filters for all roles in subject's roleMembershipRef.
            // There may be thousands of these.
            if (!autz.maySkipOnSearch()) {
                throw new UnsupportedOperationException(
                        "Inefficient roleRelation search (includeMembers=true without role in the original query) is not supported yet");
            }
        } else {
            QName subjectRelation = specRoleRelation.getSubjectRelation();
            boolean isRoleOidOk = false;
            for (ObjectReferenceType subjectRoleMembershipRef : principal.getUser().getRoleMembershipRef()) {
                if (!MiscSchemaUtil.compareRelation(subjectRelation, subjectRoleMembershipRef.getRelation())) {
                    continue;
                }
                if (!PrismReferenceValue.containsOid(queryRoleRefs, subjectRoleMembershipRef.getOid())) {
                    continue;
                }
                isRoleOidOk = true;
                break;
            }
            if (isRoleOidOk) {
                // There is already a good filter in the origFilter
                // TODO: mind the objectRelation
                membersFilter = AllFilter.createAll();
            } else {
                membersFilter = NoneFilter.createNone();
            }
        }
    }

    return ObjectQueryUtil.filterOr(refRoleFilter, membersFilter);
}

From source file:com.square.core.service.implementations.PersonneServiceImplementation.java

private Email creerOuMettreAJourEmail(Set<Personne> personnes, EmailDto emailDto, Boolean impacterFamille) {
    // Vrification des dpendances
    final EmailNature natureEmail = emailNatureDao
            .rechercheNatureEmailParId(emailDto.getNatureEmail().getIdentifiant());
    if (natureEmail == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_NATURE_EMAIL_INEXISTANT));
    }/*  w w  w  .  j av  a2  s .  c o  m*/

    // On construit la liste des identifiants des persones de la famille
    final Set<Long> idsPersonnes = new LinkedHashSet<Long>();
    for (Personne personne : personnes) {
        idsPersonnes.add(personne.getId());
    }
    // On construit la liste des personnes associes au tlphone en cas de restauration
    final Set<Personne> nouvellesPersonnes = new LinkedHashSet<Personne>();
    for (Personne personne : personnes) {
        nouvellesPersonnes.add(personne);
        if (BooleanUtils.isFalse(impacterFamille)) {
            break;
        }
    }
    Email email;
    final Calendar maintenant = Calendar.getInstance();

    if (emailDto.getIdentifiant() != null) {
        // MODE MISE A JOUR
        // On rcupre l'email  mettre  jour
        email = emailDao.rechercherEmailParId(emailDto.getIdentifiant());
        if (email == null) {
            throw new BusinessException(
                    messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_EMAIL_INEXISTENT_EN_BD));
        }
        // On vrifie que l'email n'existe pas dj dans la liste des emails de la personne
        final CritereRechercheEmail criteres = new CritereRechercheEmail();
        criteres.setIdsPersonnes(idsPersonnes);
        criteres.setEmail(emailDto.getAdresse());
        criteres.setIsSupprime(null);
        criteres.getIdsEmailsExclus().add(emailDto.getIdentifiant());
        final List<Email> listeEmails = emailDao.rechercherEmailParCritere(criteres);
        if (listeEmails != null && listeEmails.size() > 0) {
            // Cet email existe dj, on le rcupre
            final Email emailExistant = listeEmails.get(0);
            // On le restaure
            restaurerEmail(emailExistant, nouvellesPersonnes, maintenant);
            // On supprime l'ancien email
            supprimerEmail(email, maintenant);
            return emailExistant;
        } else {
            // MISE A JOUR EMAIL EXISTANT
            return mettreAJourEmail(email, emailDto, natureEmail, maintenant);
        }
    } else {
        // MODE CREATION
        // On vrifie que le tlphone n'existe pas dj dans la liste des tlphones de la personne
        final CritereRechercheEmail criteres = new CritereRechercheEmail();
        criteres.setIdsPersonnes(idsPersonnes);
        criteres.setEmail(emailDto.getAdresse());
        criteres.setIsSupprime(null);
        final List<Email> listeEmails = emailDao.rechercherEmailParCritere(criteres);
        if (listeEmails != null && listeEmails.size() > 0) {
            // Cet email existe dj, on le rcupre
            email = listeEmails.get(0);
            // On le restaure
            restaurerEmail(email, nouvellesPersonnes, maintenant);
            return email;
        } else {
            // CREATION NOUVEL EMAIL
            return creerEmail(emailDto, natureEmail, maintenant);
        }
    }
}

From source file:com.square.core.service.implementations.PersonneServiceImplementation.java

private Adresse creerOuMettreAJourAdresse(Set<Personne> personnes, AdresseDto adresseDto,
        Boolean impacterFamille) {
    // Vrification des dpendances
    final Pays paysAdresse = paysDao.rechercherPaysParId(adresseDto.getPays().getIdentifiant());
    if (paysAdresse == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PAYS_INEXISTENT_EN_BD));
    }/*from   w w w  .j  av  a2  s .co  m*/

    TypeVoie typeVoie = null;
    if (adresseDto.getTypeVoie() != null && adresseDto.getTypeVoie().getIdentifiant() != null) {
        typeVoie = typeVoieDao.rechercheTypeVoieParId(adresseDto.getTypeVoie().getIdentifiant());
        if (typeVoie == null) {
            throw new BusinessException(
                    messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_TYPEVOIE_INEXISTANT));
        }
    }
    AdresseNature nature = null;
    if (adresseDto.getNature() != null) {
        nature = adresseNatureDao.rechercheAdresseNatureParId(adresseDto.getNature().getIdentifiant());
        if (nature == null) {
            throw new BusinessException(
                    messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_NATURE_ADRESSE_INEXISTANT));
        }
    }

    CodePostalCommune codePostalCommune = null;
    if (adresseDto != null
            && squareMappingService.getIdPaysFrance().equals(adresseDto.getPays().getIdentifiant())) {
        if (adresseDto.getCodePostalCommune() != null
                && adresseDto.getCodePostalCommune().getIdentifiant() != null) {
            // On vrifie que l'adresse a un code postal - commune et que le code postal - commune existe en base de donnes.
            codePostalCommune = codePostalCommuneDao
                    .rechercheCodePostalCommuneParId(adresseDto.getCodePostalCommune().getIdentifiant());
            if (codePostalCommune == null) {
                throw new BusinessException(messageSourceUtil
                        .get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_CODEPOSTAL_COMMUNE_INEXISTANT_EN_BD));
            }
        }
    }

    Adresse adresse;
    if (adresseDto.getIdentifiant() != null) {
        // MAJ ADRESSE EXISTANTE
        adresse = adresseDao.rechercherAdresseParId(adresseDto.getIdentifiant());
        if (adresse == null) {
            throw new BusinessException(
                    messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_ADRESSE_INEXISTENT_EN_BD));
        }
        adresse.setDateModification(Calendar.getInstance());
    } else {
        // CREATION NOUVELLE ADRESSE
        adresse = new Adresse();
        adresse.setDateCreation(Calendar.getInstance());
    }

    // On dtecte s'il y a modification du code postal de l'adresse principale pour modifier l'agence attribue sur la personne
    Agence agence = null;
    if (squareMappingService.getIdNatureAdressePrincipale().equals(nature.getId())) {
        if (codePostalCommune != null && !codePostalCommune.equals(adresse.getCodePostalCommune())) {
            if (codePostalCommune.getCodePostal() != null
                    && codePostalCommune.getCodePostal().getCodePostal() != null
                    && !"".equals(codePostalCommune.getCodePostal().getCodePostal().trim())
                    && codePostalCommune.getCodePostal().getCodePostal().trim().length() != 2) {
                // on recupere le commercial suivant le code postal
                agence = agenceHabilitationUtil
                        .getAgenceByCodePostal(codePostalCommune.getCodePostal().getCodePostal().trim());
            }
        }
    }

    mapperDozerBean.map(adresseDto, adresse);
    adresse.setPays(paysAdresse);
    adresse.setTypeVoie(typeVoie);
    adresse.setNature(nature);
    adresse.setCodePostalCommune(codePostalCommune);

    if (adresse.getId() == null) {
        // On sauvegarde dans la base de donnes la nouvelle adresse
        adresseDao.ajouterAdresse(adresse);
        // On associe la nouvelle adresse aux personnes
        for (Personne personne : personnes) {
            personne.addAdresse(adresse);
            // Si il ne faut pas impacter la famille on n'ajoute l'adresse qu' la personne principale
            if (BooleanUtils.isFalse(impacterFamille)) {
                break;
            }
        }
    }

    if (agence != null) {
        for (Personne personne : personnes) {
            if (personne.getAttribution() == null) {
                throw new BusinessException(messageSourceUtil
                        .get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_ATTRIBUTION_INEXISTANTE));
            }
            personne.getAttribution().setAgence(agence);
            // Si il ne faut pas impacter la famille on ne met  jour seulement l'attribution de la personne principale
            if (BooleanUtils.isFalse(impacterFamille)) {
                break;
            }
        }
    }
    return adresse;
}

From source file:com.square.core.service.implementations.PersonneServiceImplementation.java

@Override
public TelephoneDto creerOuMettreAJourTelephone(Long idPersonne, TelephoneDto telephoneDto,
        Boolean impacterFamille, Boolean forcerDesactivationEservices) {
    final RapportDto rapport = new RapportDto();

    if (idPersonne == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_NULL));
    }//from   w  w w .  j  a  va2s  .c o m

    // Rcupration de la personne en base.
    final Personne personnePrincipale = personneDao.rechercherPersonneParId(idPersonne);
    if (personnePrincipale == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_INEXISTANTE));
    }

    final Set<Personne> personnes = new LinkedHashSet<Personne>();
    // On recherche les membres de la famille de la personne
    final Set<Personne> famille = getFamille(personnePrincipale);
    // Si le flag qui indique si l'on doit ajouter la nouvelle adresse aux bnficiaires n'est pas spcifi
    // Si la personne a une famille, on lve une exception car le flag impacterBeneficiaires doit tre renseign
    // pour dterminer si il faut ajouter l'adresse aux membres de la famille de la personne
    if (impacterFamille == null && famille.size() > 0) {
        throw new ConfirmationImpacterFamilleException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.CONFIRMATION_IMPACTER_FAMILLE,
                        new String[] { String.valueOf(famille.size()) }));
    }
    personnes.add(personnePrincipale);
    if (BooleanUtils.isTrue(impacterFamille)) {
        // On ajoute les membres de la famille  la liste des personnes concernes par la cration de nouvelles coordonnes
        personnes.addAll(famille);
    }
    final Calendar maintenant = Calendar.getInstance();

    // Traitement du tlphone
    final boolean numeroRenseigne = StringUtils.isNotBlank(telephoneDto.getNumero());
    boolean isTelephoneModifie = false;
    if (telephoneDto.getId() != null) {
        // On rcupre le tlphone  mettre  jour  partir de la base de donnes
        final Telephone telephoneAMaj = telephoneDao.rechercherTelephoneParId(telephoneDto.getId());
        // Si on recoit un id ici, mais que le numro n'est pas renseign, il faut supprimer le tlphone correspondant
        // Note : on ne supprime pas tous les tlphones car d'autres peuvent exister mais ne pas tre affichs dans Square
        if (!numeroRenseigne) {
            // Si il faut impacter toute la famille, ou que le tlphone est li  la personne principale uniquement
            if (BooleanUtils.isTrue(impacterFamille) || telephoneAMaj.getPersonnes().size() == 1) {
                // On supprime le tlphone
                supprimerTelephone(telephoneAMaj, maintenant);
            } else {
                // On enlve le tlphone de la liste des tlphones de la personne principale
                personnePrincipale.removeTelephone(telephoneAMaj);
                // on verifie si la personne est le porteur
                if (telephoneAMaj.getPorteurUid() != null
                        && telephoneAMaj.getPorteurUid().equals(personnePrincipale.getId())) {
                    // on supprime l'identifiant externe et le porteur du telephone restant sur la famille
                    telephoneAMaj.setIdentifiantExterieur(null);
                    telephoneAMaj.setPorteurUid(null);
                }
            }
            if (personnePrincipale instanceof PersonnePhysique && ((PersonnePhysique) personnePrincipale)
                    .getNature().getId().equals(squareMappingService.getIdNaturePersonneAdherent())) {
                // on verifie si la personne possede l'eservice
                final List<Long> optionsSouscrites = adherentService
                        .getListeIdsTypesOptionsSouscrites(personnePrincipale.getId());
                boolean possedeEserviceTelephone = false;
                for (Long idTypeOption : optionsSouscrites) {
                    if (idTypeOption.equals(adherentMappingService.getIdTypeOptionEnvoiSms())) {
                        possedeEserviceTelephone = true;
                        break;
                    }
                }

                if (possedeEserviceTelephone && !BooleanUtils.isTrue(forcerDesactivationEservices)) {
                    throw new ConfirmationDesactivationEserviceException(messageSourceUtil
                            .get(PersonneKeyUtil.MESSAGE_CONFIRMATION_DESACTIVATION_ESERVICE_TELEPHONE));
                } else if (possedeEserviceTelephone) {
                    adherentService.desactiverOptionsEnvoiParTelephone(personnePrincipale.getId());
                }
            }
        } else {
            // Sinon on dtermine si le tlphone a t modifi
            isTelephoneModifie = isTelephoneModifie(telephoneAMaj, telephoneDto);
            // Si le tlphone existe et a t modifi, et qu'il ne faut pas impacter la famille
            if (BooleanUtils.isFalse(impacterFamille) && isTelephoneModifie
                    && telephoneAMaj.getPersonnes().size() > 1) {
                // on supprime le telephone de la personne
                personnePrincipale.removeTelephone(telephoneAMaj);
                // on supprime l'identifiant pour crer un nouveau telephone
                telephoneDto.setId(null);
                // on verifie si la personne est le porteur
                if (telephoneAMaj.getPorteurUid() != null
                        && telephoneAMaj.getPorteurUid().equals(personnePrincipale.getId())) {
                    // on supprime l'identifiant externe et le porteur du telephone restant sur la famille (pas de synchro aia)
                    telephoneAMaj.setIdentifiantExterieur(null);
                    telephoneAMaj.setPorteurUid(null);
                } else {
                    // On supprime l'identifiant externe afin de ne pas synchroniser avec aia
                    telephoneDto.setIdext(null);
                }
            }
        }
    }
    if (numeroRenseigne) {
        controlerTelephone(rapport, telephoneDto, 0);
        if (!rapport.getEnErreur()) {
            final Telephone telephone = creerOuMettreAJourTelephone(personnes, telephoneDto, impacterFamille);
            if (telephone.getId() == null) {
                // On rattache le tlphone  la personne principale
                personnePrincipale.addTelephone(telephone);
                if (BooleanUtils.isTrue(impacterFamille)) {
                    // On rattache aussi le tlphone aux membres de sa famille
                    for (Personne personne : famille) {
                        personne.addTelephone(telephone);
                    }
                }
            }
        }
    }

    if (Boolean.TRUE.equals(rapport.getEnErreur())) {
        RapportUtil.logRapport(rapport, logger);
        throw new ControleIntegriteException(rapport);
    }

    // si il s'agit d'une personne physique et vivier ou bnficiaire vivier, on transforme en prospect ou bnficiaire prospect
    final PersonnePhysique personnePhysique = personnePhysiqueDao
            .rechercherPersonneParId(personnePrincipale.getId());
    boolean vivierToProspect = false;
    Long idNaturePersonnePhysique = null;
    final Long idNaturePersonneVivier = squareMappingService.getIdNaturePersonneVivier();
    final Long idNaturePersonneBeneficiaireVivier = squareMappingService
            .getIdNaturePersonneBeneficiaireVivier();
    if (personnePhysique != null && personnePhysique.getNature() != null) {
        if (idNaturePersonneVivier.equals(personnePhysique.getNature().getId())
                && validationPersonneUtil.verifierContrainteProspect(personnePhysique)) {
            idNaturePersonnePhysique = squareMappingService.getIdNaturePersonneProspect();
            vivierToProspect = true;
        } else if (idNaturePersonneBeneficiaireVivier.equals(personnePhysique.getNature())
                && validationPersonneUtil.verifierContrainteBeneficiaireProspect(personnePhysique)) {
            idNaturePersonnePhysique = squareMappingService.getIdNaturePersonneBeneficiaireProspect();
        }
        if (idNaturePersonnePhysique != null) {
            final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao
                    .rechercherPersonnePhysiqueParId(idNaturePersonnePhysique);
            personnePhysique.setNature(naturePersonne);
        }
    }

    // si la personne est passe de vivier  prospect et qu'elle a des bnficiaires vivier,
    // on essaye de les passer en bnficiaire prospect si c'est possible
    if (vivierToProspect && famille != null && famille.size() > 0) {
        for (Personne beneficiaire : famille) {
            final PersonnePhysique beneficiairePhysique = (PersonnePhysique) beneficiaire;
            if (beneficiairePhysique.getNature() != null
                    && idNaturePersonneBeneficiaireVivier.equals(beneficiairePhysique.getNature().getId())
                    && validationPersonneUtil.verifierContrainteBeneficiaireProspect(beneficiairePhysique)) {
                final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao
                        .rechercherPersonnePhysiqueParId(
                                squareMappingService.getIdNaturePersonneBeneficiaireProspect());
                beneficiairePhysique.setNature(naturePersonne);
            }
        }
    }

    // Rcupration du tlphone cr ou modifi pour le retourner
    final CritereRechercheTelephone critereTel = new CritereRechercheTelephone();
    final Set<Long> idsPersonnes = new HashSet<Long>();
    idsPersonnes.add(idPersonne);
    critereTel.setIdsPersonnes(idsPersonnes);
    final List<TelephoneDto> telephones = mapperDozerBean
            .mapList(telephoneDao.rechercherTelephoneParCritere(critereTel), TelephoneDto.class);
    for (TelephoneDto telephoneTrouve : telephones) {
        if (telephoneTrouve.getNumero().equals(telephoneDto.getNumero())) {
            return telephoneTrouve;
        }
    }

    // Si tlphone non trouv, on retourne un tlphone vide
    final TelephoneDto telephoneVide = new TelephoneDto();
    return telephoneVide;
}

From source file:com.square.core.service.implementations.PersonneServiceImplementation.java

@Override
public EmailDto creerOuMettreAJourEmail(Long idPersonne, EmailDto emailDto, Boolean impacterFamille,
        Boolean forcerDesactivationEservices) {
    final RapportDto rapport = new RapportDto();

    if (idPersonne == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_NULL));
    }//from   w  w w  .j  a  v a2s. c  o  m

    // Rcupration de la personne en base.
    final Personne personnePrincipale = personneDao.rechercherPersonneParId(idPersonne);
    if (personnePrincipale == null) {
        throw new BusinessException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.MESSAGE_ERREUR_PERSONNE_INEXISTANTE));
    }

    final Set<Personne> personnes = new LinkedHashSet<Personne>();
    // On recherche les membres de la famille de la personne
    final Set<Personne> famille = getFamille(personnePrincipale);
    // Si le flag qui indique si l'on doit ajouter la nouvelle adresse aux bnficiaires n'est pas spcifi
    // Si la personne a une famille, on lve une exception car le flag impacterBeneficiaires doit tre renseign
    // pour dterminer si il faut ajouter l'adresse aux membres de la famille de la personne
    if (impacterFamille == null && famille.size() > 0) {
        throw new ConfirmationImpacterFamilleException(
                messageSourceUtil.get(PersonnePhysiqueKeyUtil.CONFIRMATION_IMPACTER_FAMILLE,
                        new String[] { String.valueOf(famille.size()) }));
    }
    personnes.add(personnePrincipale);
    if (BooleanUtils.isTrue(impacterFamille)) {
        // On ajoute les membres de la famille  la liste des personnes concernes par la cration de nouvelles coordonnes
        personnes.addAll(famille);
    }
    final Calendar maintenant = Calendar.getInstance();

    // Traitement de l'email
    final boolean adresseEmailRenseignee = StringUtils.isNotBlank(emailDto.getAdresse());
    boolean isEmailModifie = false;

    if (emailDto.getIdentifiant() != null) {
        // On rcupre l'email  mettre  jour  partir de la base de donnes
        final Email emailAMaj = emailDao.rechercherEmailParId(emailDto.getIdentifiant());
        // Si on recoit un id ici, mais que les infos ne sont pas renseignes, il faut supprimer le tlphone correspondant
        // Note : on ne supprime pas tous les tlphones car d'autres peuvent exister mais ne pas tre affichs dans Square
        if (!adresseEmailRenseignee) {
            // Si il faut impacter toute la famille, ou que l'email est li  la personne principale uniquement
            if (BooleanUtils.isTrue(impacterFamille) || emailAMaj.getPersonnes().size() == 1) {
                // On supprime l'email
                supprimerEmail(emailAMaj, maintenant);
            } else {
                // On enlve le tlphone de la liste des tlphones de la personne principale
                personnePrincipale.removeEmail(emailAMaj);
                // on verifie si la personne est le porteur
                if (emailAMaj.getPorteurUid() != null
                        && emailAMaj.getPorteurUid().equals(personnePrincipale.getId())) {
                    // on supprime l'identifiant externe et le porteur de l'email restant sur la famille
                    emailAMaj.setIdentifiantExterieur(null);
                    emailAMaj.setPorteurUid(null);
                }
            }
            if (personnePrincipale instanceof PersonnePhysique && ((PersonnePhysique) personnePrincipale)
                    .getNature().getId().equals(squareMappingService.getIdNaturePersonneAdherent())) {
                // on verifie si la personne possede l'eservice
                final List<Long> optionsSouscrites = adherentService
                        .getListeIdsTypesOptionsSouscrites(personnePrincipale.getId());
                boolean possedeEserviceTelephone = false;
                for (Long idTypeOption : optionsSouscrites) {
                    if (idTypeOption.equals(adherentMappingService.getIdTypeOptionEnvoiMutuellementEmail())
                            || idTypeOption.equals(
                                    adherentMappingService.getIdTypeOptionEnvoiRelevesPrestationEmail())) {
                        possedeEserviceTelephone = true;
                        break;
                    }
                }

                if (possedeEserviceTelephone && !BooleanUtils.isTrue(forcerDesactivationEservices)) {
                    throw new ConfirmationDesactivationEserviceException(messageSourceUtil
                            .get(PersonneKeyUtil.MESSAGE_CONFIRMATION_DESACTIVATION_ESERVICE_EMAIL));
                } else if (possedeEserviceTelephone) {
                    adherentService.desactiverOptionsEnvoiParEmail(personnePrincipale.getId());
                }
            }
        } else {
            // Sinon on dtermine si l'email a t modifi
            isEmailModifie = isEmailModifie(emailAMaj, emailDto);
            // Si le tlphone existe et a t modifi, et qu'il ne faut pas impacter la famille
            if (BooleanUtils.isFalse(impacterFamille) && isEmailModifie
                    && emailAMaj.getPersonnes().size() > 1) {
                // on supprime l'email de la personne
                personnePrincipale.removeEmail(emailAMaj);
                // on supprime l'identifiant pour crer un nouvel email
                emailDto.setIdentifiant(null);
                // on verifie si la personne est le porteur
                if (emailAMaj.getPorteurUid() != null
                        && emailAMaj.getPorteurUid().equals(personnePrincipale.getId())) {
                    // on supprime l'identifiant externe et le porteur de l'email restant sur la famille (pas de synchro aia)
                    emailAMaj.setIdentifiantExterieur(null);
                    emailAMaj.setPorteurUid(null);
                } else {
                    // On supprime l'identifiant externe afin de ne pas synchroniser avec aia
                    emailDto.setIdext(null);
                }
            }
        }
    }
    if (adresseEmailRenseignee) {
        controlerEmail(rapport, emailDto, 0);
        if (!rapport.getEnErreur()) {
            final Email email = creerOuMettreAJourEmail(personnes, emailDto, impacterFamille);
            // Si c'est un nouvel email
            if (email.getId() == null) {
                // On rattache le nouvel email  la personne principale
                personnePrincipale.addEMail(email);
                if (BooleanUtils.isTrue(impacterFamille)) {
                    // On rattache aussi le nouvel email aux membres de sa famille
                    for (Personne personne : famille) {
                        personne.addEMail(email);
                    }
                }
            }
        }
    }

    if (Boolean.TRUE.equals(rapport.getEnErreur())) {
        RapportUtil.logRapport(rapport, logger);
        throw new ControleIntegriteException(rapport);
    }

    // si il s'agit d'une personne physique et vivier ou bnficiaire vivier, on transforme en prospect ou bnficiaire prospect
    final PersonnePhysique personnePhysique = personnePhysiqueDao
            .rechercherPersonneParId(personnePrincipale.getId());
    boolean vivierToProspect = false;
    Long idNaturePersonnePhysique = null;
    final Long idNaturePersonneVivier = squareMappingService.getIdNaturePersonneVivier();
    final Long idNaturePersonneBeneficiaireVivier = squareMappingService
            .getIdNaturePersonneBeneficiaireVivier();
    if (personnePhysique != null && personnePhysique.getNature() != null) {
        if (idNaturePersonneVivier.equals(personnePhysique.getNature().getId())
                && validationPersonneUtil.verifierContrainteProspect(personnePhysique)) {
            idNaturePersonnePhysique = squareMappingService.getIdNaturePersonneProspect();
            vivierToProspect = true;
        } else if (idNaturePersonneBeneficiaireVivier.equals(personnePhysique.getNature())
                && validationPersonneUtil.verifierContrainteBeneficiaireProspect(personnePhysique)) {
            idNaturePersonnePhysique = squareMappingService.getIdNaturePersonneBeneficiaireProspect();
        }
        if (idNaturePersonnePhysique != null) {
            final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao
                    .rechercherPersonnePhysiqueParId(idNaturePersonnePhysique);
            personnePhysique.setNature(naturePersonne);
        }
    }

    // si la personne est passe de vivier  prospect et qu'elle a des bnficiaires vivier,
    // on essaye de les passer en bnficiaire prospect si c'est possible
    if (vivierToProspect && famille != null && famille.size() > 0) {
        for (Personne beneficiaire : famille) {
            final PersonnePhysique beneficiairePhysique = (PersonnePhysique) beneficiaire;
            if (beneficiairePhysique.getNature() != null
                    && idNaturePersonneBeneficiaireVivier.equals(beneficiairePhysique.getNature().getId())
                    && validationPersonneUtil.verifierContrainteBeneficiaireProspect(beneficiairePhysique)) {
                final PersonnePhysiqueNature naturePersonne = personnePhysiqueNatureDao
                        .rechercherPersonnePhysiqueParId(
                                squareMappingService.getIdNaturePersonneBeneficiaireProspect());
                beneficiairePhysique.setNature(naturePersonne);
            }
        }
    }

    // Rcupration de l'email cr ou modifi pour le retourner
    final CritereRechercheEmail critereEmail = new CritereRechercheEmail();
    final Set<Long> idsPersonnes = new HashSet<Long>();
    idsPersonnes.add(idPersonne);
    critereEmail.setIdsPersonnes(idsPersonnes);
    final List<EmailDto> emails = mapperDozerBean.mapList(emailDao.rechercherEmailParCritere(critereEmail),
            EmailDto.class);
    for (EmailDto emailTrouve : emails) {
        if (emailTrouve.getAdresse().equals(emailDto.getAdresse())) {
            return emailTrouve;
        }
    }

    // Si email non trouv, on retourne un email vide
    final EmailDto emailVide = new EmailDto();
    return emailVide;
}

From source file:org.betaconceptframework.astroboa.console.jsf.identity.PersonInfoEditor.java

public String savePerson_UIAction() {

    //For a new person password must be provided

    boolean updatePassword = false;

    if (StringUtils.isNotBlank(oldPassword)) {
        if (StringUtils.isBlank(newPassword)) {
            JSFUtilities.addMessage(null, "errors.required",
                    new String[] { JSFUtilities
                            .getLocalizedMessage("user.provision.edit.user.account.data.new.password", null) },
                    FacesMessage.SEVERITY_WARN);
            return null;
        }//from   ww  w .  jav a 2 s . co  m

        if (StringUtils.isBlank(newPasswordVerify) || !newPassword.equals(newPasswordVerify)) {
            JSFUtilities.addMessage(null, "validator.userDataPasswordsDoNotMatch",
                    new String[] { JSFUtilities
                            .getLocalizedMessage("user.provision.edit.user.account.data.panel.header", null) },
                    FacesMessage.SEVERITY_WARN);
            return null;
        }

        if (newPassword.length() < 8) {
            JSFUtilities.addMessage(null, "errors.minlength",
                    new String[] { JSFUtilities.getLocalizedMessage(
                            "user.provision.edit.user.account.data.new.password", null), "8" },
                    FacesMessage.SEVERITY_WARN);
            return null;
        }

        updatePassword = true;
    }

    try {

        identityStoreRunAsSystem.execute("updateUser", new Class<?>[] { Person.class },
                new Object[] { person });

        JSFUtilities.addMessage(null, "user.provision.user.account.update.successfull", null,
                FacesMessage.SEVERITY_INFO);

        if (updatePassword) {
            try {
                Object passwordUpdated = identityStoreRunAsSystem.execute("changePassword",
                        new Class<?>[] { String.class, String.class, String.class },
                        new Object[] { person.getUsername(), oldPassword, newPassword });
                if (BooleanUtils.isFalse((Boolean) passwordUpdated)) {
                    JSFUtilities.addMessage(null, "user.provision.user.authentication.update.failed", null,
                            FacesMessage.SEVERITY_WARN);
                    return null;
                }
            } catch (CmsInvalidPasswordException e) {
                JSFUtilities.addMessage(null, "validator.userOldPasswordDoesNotMatch",
                        new String[] { JSFUtilities.getLocalizedMessage(
                                "user.provision.edit.user.account.data.old.password", null) },
                        FacesMessage.SEVERITY_WARN);
                return null;
            }

            JSFUtilities.addMessage(null, "user.provision.user.authentication.update.successfull", null,
                    FacesMessage.SEVERITY_INFO);
        }

    } catch (Exception e) {
        //Pass message directly to JSF messages
        JSFUtilities.addMessage(null, "user.provision.user.account.save.failed", null,
                FacesMessage.SEVERITY_WARN);
        logger.error("", e);
        return null;

    }

    return null;
}

From source file:org.broadleafcommerce.admin.server.service.handler.SkuCustomPersistenceHandler.java

/**
 * <p>Creates an individual property for the specified product option. This should set up an enum field whose values will
 * be the option values for this option.  This is useful when you would like to display each product option in as its
 * own field in a grid so that you can further filter by product option values.</p>
 * <p>In order for these fields to be utilized property on the fetch, in the GWT frontend you must use the
 * for your datasource.</p>// ww w .  j  av  a 2  s .c o m
 * 
 * @param option
 * @param order
 * @return
 */
public FieldMetadata createIndividualOptionField(ProductOption option, int order) {

    BasicFieldMetadata metadata = new BasicFieldMetadata();
    List<ProductOptionValue> allowedValues = option.getAllowedValues();
    if (CollectionUtils.isNotEmpty(allowedValues)) {
        metadata.setFieldType(SupportedFieldType.EXPLICIT_ENUMERATION);
        metadata.setMutable(true);
        metadata.setInheritedFromType(SkuImpl.class.getName());
        metadata.setAvailableToTypes(getPolymorphicClasses(SkuImpl.class));
        metadata.setForeignKeyCollection(false);
        metadata.setMergedPropertyType(MergedPropertyType.PRIMARY);

        //Set up the enumeration based on the product option values
        String[][] optionValues = new String[allowedValues.size()][2];
        for (int i = 0; i < allowedValues.size(); i++) {
            ProductOptionValue value = option.getAllowedValues().get(i);
            optionValues[i][0] = value.getId().toString();
            optionValues[i][1] = value.getAttributeValue();
        }
        metadata.setEnumerationValues(optionValues);

        metadata.setName(PRODUCT_OPTION_FIELD_PREFIX + option.getId());
        metadata.setFriendlyName(option.getLabel());
        metadata.setGroup("productOption_group");
        metadata.setGroupOrder(-1);
        metadata.setOrder(order);
        metadata.setExplicitFieldType(SupportedFieldType.UNKNOWN);
        metadata.setProminent(false);
        metadata.setVisibility(VisibilityEnum.FORM_EXPLICITLY_SHOWN);
        metadata.setBroadleafEnumeration("");
        metadata.setReadOnly(false);
        metadata.setRequiredOverride(BooleanUtils.isFalse(option.getRequired()));

        return metadata;
    }
    return null;
}