// Path: src/main/java/fr/univrouen/poste/domain/ManagerReview.java
// public static enum ReviewStatusTypes {Non_vue, Vue, Vue_mais_modifie_depuis, Vue_incomplet, Vue_incomplet_mais_modifie_depuis};
// 
// Path: src/main/java/fr/univrouen/poste/web/searchcriteria/PosteCandidatureSearchCriteria.java
// @RooJavaBean
// public class PosteCandidatureSearchCriteria {
// 
// 	RecevableEnum recevable;
// 	
// 	Boolean auditionnable;
// 	
// 	Boolean modification;
// 	
// 	List<String> numEmploiPostes;
// 	
// 	List<String> emailCandidats;
// 	
// 	List<ReviewStatusTypes> reviewStatus;
// 	
// 	String searchText;
// 	
// 	TemplateFile templateFile;
// 	
//     Map<PosteCandidatureTag, PosteCandidatureTagValue> tags;
// 
// 	public List<PosteAPourvoir> getPostes() {
// 		List<PosteAPourvoir> postes = null;
// 		if(numEmploiPostes!=null && !numEmploiPostes.isEmpty()) {
// 			postes = PosteAPourvoir.findPosteAPourvoirsByNumEmplois(numEmploiPostes);
// 		}
// 		return postes;
// 	}
// 
// 	public List<User> getCandidats() {
// 		List<User> candidats = null;
// 		if(emailCandidats!=null && !emailCandidats.isEmpty()) {
// 			candidats = User.findUsersByEmailAddresses(emailCandidats);
// 		}
// 		return candidats;
// 	}
// 
// }


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EntityManager;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.MapJoin;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.validation.constraints.NotNull;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
import fr.univrouen.poste.domain.ManagerReview.ReviewStatusTypes;
import fr.univrouen.poste.web.searchcriteria.PosteCandidatureSearchCriteria;
    }
    
    public Map<String, String> getMapFields() {
    	Map<String, String> mapStrings = new HashMap<String, String>();
    	mapStrings.put("candidature_candidat_nom", this.getCandidat().getNom());
    	mapStrings.put("candidature_candidat_prenom", this.getCandidat().getPrenom());
    	mapStrings.put("candidature_candidat_emailAddress", this.getCandidat().getEmailAddress());
    	mapStrings.put("candidature_galaxieEntryEtatDossier", this.getGalaxieEntryEtatDossier());
    	mapStrings.put("candidature_managerReviewState", this.getManagerReviewState());
    	mapStrings.put("candidature_candidat_numCandidat", this.getCandidat().getNumCandidat());
    	mapStrings.put("candidature_poste_localisation", this.getPoste().getLocalisation());
    	mapStrings.put("candidature_poste_numEmploi", this.getPoste().getNumEmploi());
    	mapStrings.put("candidature_poste_profil", this.getPoste().getProfil());
    	mapStrings.put("candidature_auditionnable", this.getAuditionnable() ? "AUDITIONNABLE" : "NON_AUDITIONNABLE");
    	mapStrings.put("candidature_recevable", this.getRecevableEnum().toString());
    	for(PosteCandidatureTag tag : this.getTags().keySet()) {
    		String tagValue = this.getTags().get(tag) != null ? this.getTags().get(tag).getValue() : "";
    		mapStrings.put(String.format("candidature_tag_%s", tag.getCleanName()), tagValue);
    	}
    	return mapStrings;
    }
    
    public List<User> getSortedReporters() {
    	List<User> sortedReporters = new ArrayList<User>(this.reporters);
    	Collections.sort(sortedReporters, new UserComparator());
    	return sortedReporters;
    }
    
    public void setModification(Date modification) {
        if (ReviewStatusTypes.Vue.equals(managerReview.getReviewStatus())) {
// Path: src/main/java/fr/univrouen/poste/domain/ManagerReview.java
// public static enum ReviewStatusTypes {Non_vue, Vue, Vue_mais_modifie_depuis, Vue_incomplet, Vue_incomplet_mais_modifie_depuis};
// 
// Path: src/main/java/fr/univrouen/poste/web/searchcriteria/PosteCandidatureSearchCriteria.java
// @RooJavaBean
// public class PosteCandidatureSearchCriteria {
// 
// 	RecevableEnum recevable;
// 	
// 	Boolean auditionnable;
// 	
// 	Boolean modification;
// 	
// 	List<String> numEmploiPostes;
// 	
// 	List<String> emailCandidats;
// 	
// 	List<ReviewStatusTypes> reviewStatus;
// 	
// 	String searchText;
// 	
// 	TemplateFile templateFile;
// 	
//     Map<PosteCandidatureTag, PosteCandidatureTagValue> tags;
// 
// 	public List<PosteAPourvoir> getPostes() {
// 		List<PosteAPourvoir> postes = null;
// 		if(numEmploiPostes!=null && !numEmploiPostes.isEmpty()) {
// 			postes = PosteAPourvoir.findPosteAPourvoirsByNumEmplois(numEmploiPostes);
// 		}
// 		return postes;
// 	}
// 
// 	public List<User> getCandidats() {
// 		List<User> candidats = null;
// 		if(emailCandidats!=null && !emailCandidats.isEmpty()) {
// 			candidats = User.findUsersByEmailAddresses(emailCandidats);
// 		}
// 		return candidats;
// 	}
// 
// }


// Path: src/main/java/fr/univrouen/poste/domain/PosteCandidature.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EntityManager;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.MapJoin;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.validation.constraints.NotNull;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
import fr.univrouen.poste.domain.ManagerReview.ReviewStatusTypes;
import fr.univrouen.poste.web.searchcriteria.PosteCandidatureSearchCriteria;

    }
    
    public Map<String, String> getMapFields() {
    	Map<String, String> mapStrings = new HashMap<String, String>();
    	mapStrings.put("candidature_candidat_nom", this.getCandidat().getNom());
    	mapStrings.put("candidature_candidat_prenom", this.getCandidat().getPrenom());
    	mapStrings.put("candidature_candidat_emailAddress", this.getCandidat().getEmailAddress());
    	mapStrings.put("candidature_galaxieEntryEtatDossier", this.getGalaxieEntryEtatDossier());
    	mapStrings.put("candidature_managerReviewState", this.getManagerReviewState());
    	mapStrings.put("candidature_candidat_numCandidat", this.getCandidat().getNumCandidat());
    	mapStrings.put("candidature_poste_localisation", this.getPoste().getLocalisation());
    	mapStrings.put("candidature_poste_numEmploi", this.getPoste().getNumEmploi());
    	mapStrings.put("candidature_poste_profil", this.getPoste().getProfil());
    	mapStrings.put("candidature_auditionnable", this.getAuditionnable() ? "AUDITIONNABLE" : "NON_AUDITIONNABLE");
    	mapStrings.put("candidature_recevable", this.getRecevableEnum().toString());
    	for(PosteCandidatureTag tag : this.getTags().keySet()) {
    		String tagValue = this.getTags().get(tag) != null ? this.getTags().get(tag).getValue() : "";
    		mapStrings.put(String.format("candidature_tag_%s", tag.getCleanName()), tagValue);
    	}
    	return mapStrings;
    }
    
    public List<User> getSortedReporters() {
    	List<User> sortedReporters = new ArrayList<User>(this.reporters);
    	Collections.sort(sortedReporters, new UserComparator());
    	return sortedReporters;
    }
    
    public void setModification(Date modification) {
        if (ReviewStatusTypes.Vue.equals(managerReview.getReviewStatus())) {
            managerReview.setReviewStatus(ReviewStatusTypes.Vue_mais_modifie_depuis);