home *** CD-ROM | disk | FTP | other *** search
- package netscape.ldap.ber.stream;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
-
- public abstract class BERCharacterString extends BERElement {
- protected String m_value;
- private byte[] byte_buf;
-
- public BERCharacterString() {
- }
-
- public BERCharacterString(String var1) {
- this.m_value = var1;
- }
-
- public BERCharacterString(byte[] var1) {
- try {
- this.m_value = new String(var1, "UTF8");
- } catch (Throwable var2) {
- }
- }
-
- public BERCharacterString(BERTagDecoder var1, InputStream var2, int[] var3) throws IOException {
- int var4 = BERElement.readLengthOctets(var2, var3);
- int[] var5 = new int[1];
- Object var6 = null;
- if (var4 != -1) {
- for(var3[0] += var4; var4 > 0; var4 -= var5[0]) {
- var5[0] = 0;
- BERElement var10 = BERElement.getElement(var1, var2, var5);
- if (var10 != null) {
- BERCharacterString var11 = (BERCharacterString)var10;
- String var12 = var11.getValue();
- if (this.m_value == null) {
- this.m_value = var12;
- } else {
- this.m_value = this.m_value + var12;
- }
- }
- }
-
- } else {
- do {
- var5[0] = 0;
- var9 = BERElement.getElement(var1, var2, var5);
- if (var9 != null) {
- BERCharacterString var7 = (BERCharacterString)var9;
- String var8 = var7.getValue();
- if (this.m_value == null) {
- this.m_value = var8;
- } else {
- this.m_value = this.m_value + var8;
- }
- }
- } while(var9 != null);
-
- }
- }
-
- public BERCharacterString(InputStream var1, int[] var2) throws IOException {
- int var3 = BERElement.readLengthOctets(var1, var2);
- if (var3 > 0) {
- byte[] var4 = new byte[var3];
-
- for(int var5 = 0; var5 < var3; ++var5) {
- var4[var5] = (byte)var1.read();
- }
-
- var2[0] += var3;
-
- try {
- this.m_value = new String(var4, "UTF8");
- } catch (Throwable var6) {
- }
- }
- }
-
- public void write(OutputStream var1) throws IOException {
- var1.write(this.getType());
- if (this.m_value == null) {
- BERElement.sendDefiniteLength(var1, 0);
- } else {
- try {
- this.byte_buf = this.m_value.getBytes("UTF8");
- BERElement.sendDefiniteLength(var1, this.byte_buf.length);
- } catch (Throwable var2) {
- }
-
- var1.write(this.byte_buf, 0, this.byte_buf.length);
- }
- }
-
- public String getValue() {
- return this.m_value;
- }
-
- public abstract int getType();
-
- public abstract String toString();
- }
-