home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / ber / stream / BERCharacterString.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  1.8 KB  |  103 lines

  1. package netscape.ldap.ber.stream;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6.  
  7. public abstract class BERCharacterString extends BERElement {
  8.    protected String m_value;
  9.    private byte[] byte_buf;
  10.  
  11.    public BERCharacterString() {
  12.    }
  13.  
  14.    public BERCharacterString(String var1) {
  15.       this.m_value = var1;
  16.    }
  17.  
  18.    public BERCharacterString(byte[] var1) {
  19.       try {
  20.          this.m_value = new String(var1, "UTF8");
  21.       } catch (Throwable var2) {
  22.       }
  23.    }
  24.  
  25.    public BERCharacterString(BERTagDecoder var1, InputStream var2, int[] var3) throws IOException {
  26.       int var4 = BERElement.readLengthOctets(var2, var3);
  27.       int[] var5 = new int[1];
  28.       Object var6 = null;
  29.       if (var4 != -1) {
  30.          for(var3[0] += var4; var4 > 0; var4 -= var5[0]) {
  31.             var5[0] = 0;
  32.             BERElement var10 = BERElement.getElement(var1, var2, var5);
  33.             if (var10 != null) {
  34.                BERCharacterString var11 = (BERCharacterString)var10;
  35.                String var12 = var11.getValue();
  36.                if (this.m_value == null) {
  37.                   this.m_value = var12;
  38.                } else {
  39.                   this.m_value = this.m_value + var12;
  40.                }
  41.             }
  42.          }
  43.  
  44.       } else {
  45.          do {
  46.             var5[0] = 0;
  47.             var9 = BERElement.getElement(var1, var2, var5);
  48.             if (var9 != null) {
  49.                BERCharacterString var7 = (BERCharacterString)var9;
  50.                String var8 = var7.getValue();
  51.                if (this.m_value == null) {
  52.                   this.m_value = var8;
  53.                } else {
  54.                   this.m_value = this.m_value + var8;
  55.                }
  56.             }
  57.          } while(var9 != null);
  58.  
  59.       }
  60.    }
  61.  
  62.    public BERCharacterString(InputStream var1, int[] var2) throws IOException {
  63.       int var3 = BERElement.readLengthOctets(var1, var2);
  64.       if (var3 > 0) {
  65.          byte[] var4 = new byte[var3];
  66.  
  67.          for(int var5 = 0; var5 < var3; ++var5) {
  68.             var4[var5] = (byte)var1.read();
  69.          }
  70.  
  71.          var2[0] += var3;
  72.  
  73.          try {
  74.             this.m_value = new String(var4, "UTF8");
  75.          } catch (Throwable var6) {
  76.          }
  77.       }
  78.    }
  79.  
  80.    public void write(OutputStream var1) throws IOException {
  81.       var1.write(this.getType());
  82.       if (this.m_value == null) {
  83.          BERElement.sendDefiniteLength(var1, 0);
  84.       } else {
  85.          try {
  86.             this.byte_buf = this.m_value.getBytes("UTF8");
  87.             BERElement.sendDefiniteLength(var1, this.byte_buf.length);
  88.          } catch (Throwable var2) {
  89.          }
  90.  
  91.          var1.write(this.byte_buf, 0, this.byte_buf.length);
  92.       }
  93.    }
  94.  
  95.    public String getValue() {
  96.       return this.m_value;
  97.    }
  98.  
  99.    public abstract int getType();
  100.  
  101.    public abstract String toString();
  102. }
  103.