home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / INTERNET / NETSCAP4.06 / CP32E406.EXE / nav40.z / ldap10.jar / netscape / ldap / controls / LDAPPersistSearchControl.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-13  |  2.8 KB  |  93 lines

  1. package netscape.ldap.controls;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import netscape.ldap.LDAPControl;
  5. import netscape.ldap.ber.stream.BERBoolean;
  6. import netscape.ldap.ber.stream.BERConstruct;
  7. import netscape.ldap.ber.stream.BERElement;
  8. import netscape.ldap.ber.stream.BEREnumerated;
  9. import netscape.ldap.ber.stream.BERInteger;
  10. import netscape.ldap.ber.stream.BERIntegral;
  11. import netscape.ldap.ber.stream.BERSequence;
  12. import netscape.ldap.client.JDAPBERTagDecoder;
  13.  
  14. public class LDAPPersistSearchControl extends LDAPControl {
  15.    private int m_changeTypes = 1;
  16.    private boolean m_changesOnly = false;
  17.    private boolean m_returnECs = false;
  18.    public static int ADD = 1;
  19.    public static int DELETE = 2;
  20.    public static int MODIFY = 4;
  21.    public static int MODDN = 8;
  22.  
  23.    public LDAPPersistSearchControl() {
  24.       super("2.16.840.1.113730.3.4.3", true, (byte[])null);
  25.    }
  26.  
  27.    public LDAPPersistSearchControl(int var1, boolean var2, boolean var3, boolean var4) {
  28.       super("2.16.840.1.113730.3.4.3", var4, (byte[])null);
  29.       super.m_value = this.createPersistSearchSpecification(var1, var2, var3);
  30.    }
  31.  
  32.    public int getChangeTypes() {
  33.       return this.m_changeTypes;
  34.    }
  35.  
  36.    public boolean getChangesOnly() {
  37.       return this.m_changesOnly;
  38.    }
  39.  
  40.    public boolean getReturnControls() {
  41.       return this.m_returnECs;
  42.    }
  43.  
  44.    public void setChangeTypes(int var1) {
  45.       this.m_changeTypes = var1;
  46.    }
  47.  
  48.    public void setChangesOnly(boolean var1) {
  49.       this.m_changesOnly = var1;
  50.    }
  51.  
  52.    public void setReturnControls(boolean var1) {
  53.       this.m_returnECs = var1;
  54.    }
  55.  
  56.    public LDAPEntryChangeControl parseResponse(byte[] var1) {
  57.       LDAPEntryChangeControl var2 = new LDAPEntryChangeControl();
  58.       ByteArrayInputStream var3 = new ByteArrayInputStream(var1);
  59.       new BERSequence();
  60.       JDAPBERTagDecoder var4 = new JDAPBERTagDecoder();
  61.       int[] var5 = new int[]{0};
  62.  
  63.       try {
  64.          BERSequence var6 = (BERSequence)BERElement.getElement(var4, var3, var5);
  65.          BEREnumerated var7 = (BEREnumerated)((BERConstruct)var6).elementAt(0);
  66.          var2.setChangeType(((BERIntegral)var7).getValue());
  67.          return var2;
  68.       } catch (Throwable var8) {
  69.          return null;
  70.       }
  71.    }
  72.  
  73.    public static LDAPEntryChangeControl parseResponse(LDAPControl[] var0) {
  74.       LDAPPersistSearchControl var1 = new LDAPPersistSearchControl();
  75.  
  76.       for(int var2 = 0; var0 != null && var2 < var0.length; ++var2) {
  77.          if (var0[var2].getID().equals("2.16.840.1.113730.3.4.7")) {
  78.             return var1.parseResponse(var0[var2].getValue());
  79.          }
  80.       }
  81.  
  82.       return null;
  83.    }
  84.  
  85.    private byte[] createPersistSearchSpecification(int var1, boolean var2, boolean var3) {
  86.       BERSequence var4 = new BERSequence();
  87.       ((BERConstruct)var4).addElement(new BERInteger(var1));
  88.       ((BERConstruct)var4).addElement(new BERBoolean(var2));
  89.       ((BERConstruct)var4).addElement(new BERBoolean(var3));
  90.       return ((LDAPControl)this).flattenBER(var4);
  91.    }
  92. }
  93.