Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Model.ldap;
- import java.util.ArrayList;
- import javax.naming.NamingEnumeration;
- import javax.naming.NamingException;
- import javax.naming.directory.Attribute;
- import javax.naming.directory.Attributes;
- import javax.naming.directory.BasicAttribute;
- import javax.naming.directory.BasicAttributes;
- import javax.naming.directory.DirContext;
- import javax.naming.directory.SearchControls;
- import javax.naming.directory.SearchResult;
- import javax.naming.ldap.LdapName;
- import javax.naming.ldap.Rdn;
- import Model.Client;
- import Model.Document;
- public class GestionDocument {
- public static void CreerDocument(Document document) {
- try {
- /* instancie l'objet que l'on va rentrer dans le LDAP */
- Attributes attrs = new BasicAttributes();
- /* Définit les ObjectClass de l'objet qu'on ajoute */
- BasicAttribute objectClassAttribute = new BasicAttribute("objectClass");
- objectClassAttribute.add("top");
- objectClassAttribute.add("document");
- attrs.put(objectClassAttribute);
- /* Attributs documentIdentifier, cn et description (stocke le nom de l'auteur)*/
- attrs.put(new BasicAttribute("documentIdentifier", document.getISBN()));
- attrs.put(new BasicAttribute("cn", document.getNom()));
- attrs.put(new BasicAttribute("description", document.getAuteur()));
- /*
- * A défaut d'avoir de vrais attributs de date, on utilisera documentLocation
- * pour la date d'emprunt, et documentPublisher pour la date de retour
- */
- attrs.put(new BasicAttribute("documentLocation", document.getDateEmprunt()));
- attrs.put(new BasicAttribute("documentPublisher", document.getDateRetour()));
- LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
- /* Creation */
- ConnexionLDAP.getInstance().createSubcontext(name, attrs);
- System.out.println("Nouvelle entrée réussie");
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
- public static void ModifierDocument(Document document) {
- try {
- Attributes attrsToReplace = new BasicAttributes();
- Attributes attrsToRemove = new BasicAttributes();
- /* Add new attributes */
- attrsToReplace.put(new BasicAttribute("documentIdentifier", document.getISBN()));
- attrsToReplace.put(new BasicAttribute("cn", document.getNom()));
- attrsToReplace.put(new BasicAttribute("documentAuthor", document.getAuteur()));
- attrsToReplace.put(new BasicAttribute("documentLocation", document.getDateEmprunt()));
- attrsToReplace.put(new BasicAttribute("documentPublisher", document.getDateRetour()));
- LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
- /* Modification */
- ConnexionLDAP.getInstance().modifyAttributes(name, DirContext.REPLACE_ATTRIBUTE, attrsToReplace);
- System.out.println("Entrée modifiée");
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
- public static void SupprimerDocument(Document document) {
- try {
- LdapName name = new LdapName("documentIdentifier=" + Rdn.escapeValue(document.getISBN()) + ",ou=Document");
- /* Suppression */
- ConnexionLDAP.getInstance().destroySubcontext(name);
- System.out.println("Entrée supprimée");
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
- public static ArrayList<Document> RechercherDocument(String nom, String auteur) {
- try {
- ArrayList<Document> recherche = new ArrayList<>();
- Attributes attrs = ConnexionLDAP.getInstance().getAttributes("");
- SearchControls controls = new SearchControls();
- controls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
- NamingEnumeration<SearchResult> values = ConnexionLDAP.getInstance().search("ou=Document",
- "(objectClass=*)", controls);
- System.out.println(values);
- while (values.hasMore()) {
- SearchResult searchResult = values.next();
- System.out.println(searchResult);
- Attributes attributes = searchResult.getAttributes();
- Attribute attrDocumentIdentifier = attributes.get("documentIdentifier");
- Attribute attrCn = attributes.get("cn");
- Attribute attrDescription = attributes.get("description");
- Attribute attrDateEmprunt = attributes.get("documentLocation");
- Attribute attrDateRetour = attributes.get("documentPublisher");
- String[] documentIdentifier = attrDocumentIdentifier.toString().split(" ", 2);
- String[] cn = attrCn.toString().split(" ", 2);
- String[] description = attrDescription.toString().split(" ", 2);
- String[] dateEmprunt = attrDateEmprunt.toString().split(" ", 2);
- String[] dateRetour = attrDateRetour.toString().split(" ", 2);
- if (auteur.equals("")) {
- if (cn[1].equals(nom)) {
- recherche.add(new Document(documentIdentifier[1], cn[1], description[1], dateEmprunt[1], dateRetour[1]));
- }
- } else {
- if (cn[1].equals(nom) && description[1].equals(auteur)) {
- recherche.add(new Document(documentIdentifier[1], cn[1], description[1], dateEmprunt[1], dateRetour[1]));
- }
- }
- }
- return recherche;
- } catch (NamingException e) {
- e.printStackTrace();
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement