Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.10 KB | None | 0 0
  1. package Model.ldap;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import javax.naming.NamingEnumeration;
  6. import javax.naming.NamingException;
  7. import javax.naming.directory.Attribute;
  8. import javax.naming.directory.Attributes;
  9. import javax.naming.directory.BasicAttribute;
  10. import javax.naming.directory.BasicAttributes;
  11. import javax.naming.directory.DirContext;
  12. import javax.naming.directory.SearchControls;
  13. import javax.naming.directory.SearchResult;
  14. import javax.naming.ldap.LdapName;
  15. import javax.naming.ldap.Rdn;
  16.  
  17. import Model.Client;
  18. import Model.Document;
  19.  
  20. public class GestionDocument {
  21.     public static void CreerDocument(Document document) {
  22.         try {
  23.             /* instancie l'objet que l'on va rentrer dans le LDAP */
  24.             Attributes attrs = new BasicAttributes();
  25.  
  26.             /* Définit les ObjectClass de l'objet qu'on ajoute */
  27.             BasicAttribute objectClassAttribute = new BasicAttribute("objectClass");
  28.             objectClassAttribute.add("top");
  29.             objectClassAttribute.add("document");
  30.             attrs.put(objectClassAttribute);
  31.  
  32.             /* Attributs documentIdentifier, cn et description (stocke le nom de l'auteur)*/
  33.             attrs.put(new BasicAttribute("documentIdentifier", document.getISBN()));
  34.             attrs.put(new BasicAttribute("cn", document.getNom()));
  35.             attrs.put(new BasicAttribute("description", document.getAuteur()));
  36.  
  37.             /*
  38.              * A défaut d'avoir de vrais attributs de date, on utilisera documentLocation
  39.              * pour la date d'emprunt, et documentPublisher pour la date de retour
  40.              */
  41.  
  42.             attrs.put(new BasicAttribute("documentLocation", document.getDateEmprunt()));
  43.             attrs.put(new BasicAttribute("documentPublisher", document.getDateRetour()));
  44.  
  45.             LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
  46.  
  47.             /* Creation */
  48.             ConnexionLDAP.getInstance().createSubcontext(name, attrs);
  49.             System.out.println("Nouvelle entrée réussie");
  50.  
  51.         } catch (NamingException e) {
  52.             e.printStackTrace();
  53.         }
  54.     }
  55.  
  56.     public static void ModifierDocument(Document document) {
  57.         try {
  58.             Attributes attrsToReplace = new BasicAttributes();
  59.             Attributes attrsToRemove = new BasicAttributes();
  60.  
  61.             /* Add new attributes */
  62.  
  63.             attrsToReplace.put(new BasicAttribute("documentIdentifier", document.getISBN()));
  64.             attrsToReplace.put(new BasicAttribute("cn", document.getNom()));
  65.             attrsToReplace.put(new BasicAttribute("documentAuthor", document.getAuteur()));
  66.             attrsToReplace.put(new BasicAttribute("documentLocation", document.getDateEmprunt()));
  67.             attrsToReplace.put(new BasicAttribute("documentPublisher", document.getDateRetour()));
  68.  
  69.             LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
  70.  
  71.             /* Modification */
  72.             ConnexionLDAP.getInstance().modifyAttributes(name, DirContext.REPLACE_ATTRIBUTE, attrsToReplace);
  73.  
  74.             System.out.println("Entrée modifiée");
  75.         } catch (NamingException e) {
  76.             e.printStackTrace();
  77.         }
  78.  
  79.     }
  80.  
  81.     public static void SupprimerDocument(Document document) {
  82.         try {
  83.             LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
  84.  
  85.             /* Suppression */
  86.             ConnexionLDAP.getInstance().destroySubcontext(name);
  87.  
  88.             System.out.println("Entrée supprimée");
  89.         } catch (NamingException e) {
  90.             e.printStackTrace();
  91.         }
  92.  
  93.     }
  94.  
  95.     public static ArrayList<Document> RechercherDocument(String nom, String auteur) {
  96.         try {
  97.             ArrayList<Document> recherche = new ArrayList<>();
  98.             Attributes attrs = ConnexionLDAP.getInstance().getAttributes("");
  99.  
  100.             SearchControls controls = new SearchControls();
  101.             controls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
  102.  
  103.             NamingEnumeration<SearchResult> values = ConnexionLDAP.getInstance().search("ou=Document",
  104.                     "(objectClass=*)", controls);
  105.             System.out.println(values);
  106.  
  107.             while (values.hasMore()) {
  108.                 SearchResult searchResult = values.next();
  109.                 System.out.println(searchResult);
  110.                 Attributes attributes = searchResult.getAttributes();
  111.                 Attribute attrDocumentIdentifier = attributes.get("documentIdentifier");
  112.                 Attribute attrCn = attributes.get("cn");
  113.                 Attribute attrDescription = attributes.get("description");
  114.                 Attribute attrDateEmprunt = attributes.get("documentLocation");
  115.                 Attribute attrDateRetour = attributes.get("documentPublisher");
  116.  
  117.                 String[] documentIdentifier = attrDocumentIdentifier.toString().split(" ", 2);
  118.                 String[] cn = attrCn.toString().split(" ", 2);
  119.                 String[] description = attrDescription.toString().split(" ", 2);
  120.                 String[] dateEmprunt = attrDateEmprunt.toString().split(" ", 2);
  121.                 String[] dateRetour = attrDateRetour.toString().split(" ", 2);
  122.  
  123.                 if (auteur.equals("")) {
  124.                     if (cn[1].equals(nom)) {
  125.                         recherche.add(new Document(documentIdentifier[1], cn[1], description[1], dateEmprunt[1], dateRetour[1]));
  126.                     }
  127.                 } else {
  128.                     if (cn[1].equals(nom) && description[1].equals(auteur)) {
  129.                         recherche.add(new Document(documentIdentifier[1], cn[1], description[1], dateEmprunt[1], dateRetour[1]));
  130.                     }
  131.                 }
  132.  
  133.             }
  134.             return recherche;
  135.         } catch (NamingException e) {
  136.             e.printStackTrace();
  137.             return null;
  138.         }
  139.  
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement