import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;

/**
  * This example shows how to modify existing objects in the database.
  * Looks up the vectorid-1 object stored from ADDSeralize.java and adds the lastlogin attribute.
  * The lastlogin attribute has multiple values of data,last deposit,last withdrawal,and balance.
  */
public class MODObject {
   // initial context implementation
    public static void main(String args[]) {
      try {

       //Hashtable for environmental information
    	Hashtable env = new Hashtable(11);
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://localhost:389");

         //Get a reference to a directory context
         DirContext ctx = new InitialDirContext(env);

   		 Attributes myAttrs = new BasicAttributes(true);
		 Attribute oc = new BasicAttribute("lastlogin");
		   		oc.add("Monday January 12 1999"); //date
		   		oc.add("200"); //last deposit
		   		oc.add("43"); //last withdrawal
		   		oc.add("7652"); //balance
		 myAttrs.put(oc);
		 ctx.modifyAttributes("cn=vectorid-1,ou=JavaObjects,o=myserver.com",DirContext.ADD_ATTRIBUTE,myAttrs);

		 Vector  vec= (Vector)ctx.lookup("cn=vectorid-1,ou=JavaObjects,o=myserver.com");

		 // just for testing , see if a vector is returned or not !
		 System.out.println(vec instanceof Vector);


		 /*

		 Alternatively the following piece of code can be used to handle multiple attributes

		 ModificationItem[] mods = new ModificationItem[3];
         Attribute mod0 = new BasicAttribute("lastlogin","Monday January 12 1999");
         Attribute mod1 = new BasicAttribute("ipaddress", "172.54.15.1");
		 Attribute mod2 = new BasicAttribute("location");
         mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,mod0);
         mods[1] = new ModificationItem(DirContext.ADD_ATTRIBUTE,mod1);
         mods[2] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE,mod2);
         ctx.modifyAttributes("cn=myappuser-1,ou=JavaObjects,o=myserver.com", mods);
         */
         ctx.close();

      }
      catch(Exception e){
         e.printStackTrace();

      }


   }
}