home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPMain.jar / JDPJagg.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-03-04  |  20.7 KB  |  1,379 lines

  1. import java.awt.Event;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.FilterInputStream;
  6. import java.io.OutputStream;
  7. import java.io.PipedInputStream;
  8. import java.io.PipedOutputStream;
  9. import java.io.StringBufferInputStream;
  10. import java.net.InetAddress;
  11. import java.net.Socket;
  12. import java.net.URL;
  13. import java.net.URLConnection;
  14. import java.net.URLEncoder;
  15. import java.util.Date;
  16. import java.util.Hashtable;
  17. import java.util.Properties;
  18. import java.util.StringTokenizer;
  19. import java.util.Vector;
  20.  
  21. public class JDPJagg implements Runnable {
  22.    static final boolean JAGG_REL_TRIAL = true;
  23.    static final boolean JAGG_REL_INTERNAL = false;
  24.    static final boolean JAGG_REL_EXTERNAL = false;
  25.    static boolean activated;
  26.    public static boolean useJaggServer = true;
  27.    public boolean useJdbcDirect;
  28.    static boolean useLocalJaggServer;
  29.    private static String VERSION = new String("JAGG-1.0-01MAR96");
  30.    static String version = "";
  31.    private static boolean DEBUG;
  32.    private static boolean LSQLflag = true;
  33.    private String SERV;
  34.    private String JaggSERV;
  35.    private String prevJaggSERV;
  36.    private InetAddress thisInetAddress;
  37.    static JaggServer jaggServer;
  38.    static String jaggServerPath;
  39.    private int serverPort = 4899;
  40.    private static int defaultPort = 4899;
  41.    private Socket server;
  42.    private BufferedOutputStream serverRequest;
  43.    private BufferedInputStream serverResponse;
  44.    private PipedOutputStream serverOut;
  45.    private boolean keepConnectionOpenAlways;
  46.    private boolean keepConnectionOpen;
  47.    private boolean requestInProgress;
  48.    private boolean dropConnectionThreadReady;
  49.    private int dropAfterSeconds;
  50.    private Thread thisThread;
  51.    // $FF: renamed from: NL java.lang.String
  52.    static String field_0 = "\u0002";
  53.    static String EOT = "\u0001";
  54.    private int rowCount;
  55.    private int columnCount;
  56.    private String lastError;
  57.    private long sqlCounter;
  58.    static final String MSSQLSERVER = new String("MICROSOFT SQL SERVER");
  59.    static final String SYBASE = new String("SYBASE");
  60.    static final String SYBASE10 = new String("SQL SERVER");
  61.    static final String ACCESS = new String("ACCESS");
  62.    static final String FOXPRO = new String("FOXPRO");
  63.    static final String VFOXPRO = new String("VISUAL FOXPRO");
  64.    static final String ORACLE = new String("ORACLE");
  65.    static final String POLITE = new String("POLITE");
  66.    static final String INFORMIX = new String("INFORMIX");
  67.    static final String LOTUS = new String("LOTUS");
  68.    static final String ANYWHERE = new String("ANYWHERE");
  69.    static final String DB2 = new String("DB2");
  70.    static final String SOLIDSERVER = new String("SOLID SERVER");
  71.    static final String INGRES = new String("INGRES");
  72.    static final String RDB = new String("RDB");
  73.    static final String ADABAS = new String("ADABAS");
  74.    static final String POSTGRES = new String("POSTGRES");
  75.    static final String CLOUDSCAPE = new String("CLOUDSCAPE");
  76.    private String FCTN = "";
  77.    private String FCTNP = "";
  78.    private String DSN = "";
  79.    private String CSTR = "";
  80.    private String OUT = "zero1";
  81.    private String SEP = "\u0003";
  82.    private String MRW = "";
  83.    private String UID = "";
  84.    private String PWD = "";
  85.    // $FF: renamed from: DB java.lang.String
  86.    private String field_1 = "";
  87.    private String WSID = "";
  88.    private String SQL = "";
  89.    // $FF: renamed from: K java.lang.String
  90.    private String field_2;
  91.    private String LSQL = "";
  92.    private String TOUT = "";
  93.    private String DLOG = "";
  94.    private String NULL = "space";
  95.    private String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
  96.    private String jdbcPrefix = "jdbc:odbc:";
  97.    private String jdbcSuffix = "";
  98.    int[] insertType;
  99.    Vector insertData;
  100.    private String pFCTN;
  101.    private String pFCTNP;
  102.    private String pDSN;
  103.    private String pCSTR;
  104.    private String pOUT;
  105.    private String pSEP;
  106.    private String pMRW;
  107.    private String pUID;
  108.    private String pPWD;
  109.    private String pDB;
  110.    private String pWSID;
  111.    private String pSQL;
  112.    // $FF: renamed from: pK java.lang.String
  113.    private String field_3;
  114.    private String pLSQL;
  115.    private String pTOUT;
  116.    private String pDLOG;
  117.    private String pNULL;
  118.    private URLEncoder URLEnc;
  119.    private char[] lineBuffer;
  120.    JDPStatusMessage mainmsg;
  121.    static String suserid = "-1";
  122.    static String jdpsystem = "";
  123.    JDPJdbcDirect jdbcDirect;
  124.    static String[] DSdatasource;
  125.    static String[] DSjdbcdriver;
  126.    static String[] DSjdbcprefix;
  127.    static String[] DSjdbcsuffix;
  128.    static String[] DSconnectstring;
  129.    static String[] DSsourcetype;
  130.    static String[] DSjdbcdirect;
  131.    private int[] columnType;
  132.  
  133.    public void setFCTN(String var1) {
  134.       if (var1.equals("checkVersion")) {
  135.          this.FCTN = "OK";
  136.       } else if (var1.equals("activated")) {
  137.          activated = true;
  138.       } else if (var1.equals("version")) {
  139.          version = this.FCTNP;
  140.       } else {
  141.          this.pFCTN = URLEncoder.encode(this.FCTN = var1);
  142.       }
  143.    }
  144.  
  145.    public String getFCTN() {
  146.       return this.FCTN;
  147.    }
  148.  
  149.    public void loadJdbcSettings(String var1) {
  150.       if (DSdatasource != null) {
  151.          if (DSjdbcdriver == null) {
  152.             this.loadJdbcDataSources();
  153.          }
  154.  
  155.          for(int var2 = 0; var2 < DSdatasource.length; ++var2) {
  156.             if (DSdatasource[var2].equals(var1)) {
  157.                this.setJdbcDriver(DSjdbcdriver[var2]);
  158.                this.setJdbcPrefix(DSjdbcprefix[var2]);
  159.                this.setJdbcSuffix(DSjdbcsuffix[var2]);
  160.                this.setCSTR(DSconnectstring[var2]);
  161.                this.setJdbcDirect(DSjdbcdirect[var2].equals("Yes"));
  162.             }
  163.          }
  164.  
  165.       }
  166.    }
  167.  
  168.    private String formatRequest() {
  169.       StringBuffer var1 = new StringBuffer(8192);
  170.       var1.setLength(0);
  171.       var1.append("SERV=" + this.JaggSERV + field_0);
  172.       if (this.DSN.length() > 0) {
  173.          var1.append("DSN=" + this.DSN + field_0);
  174.       }
  175.  
  176.       if (this.CSTR.length() > 0) {
  177.          var1.append("CSTR=" + this.CSTR + field_0);
  178.       }
  179.  
  180.       if (this.OUT.length() > 0) {
  181.          var1.append("OUT=" + this.OUT + field_0);
  182.       }
  183.  
  184.       if (this.MRW.length() > 0) {
  185.          var1.append("MRW=" + this.MRW + field_0);
  186.       }
  187.  
  188.       if (this.FCTN.length() > 0) {
  189.          var1.append("FCTN=" + this.FCTN + field_0);
  190.       }
  191.  
  192.       if (this.FCTNP.length() > 0) {
  193.          var1.append("FCTNP=" + this.FCTNP + field_0);
  194.       }
  195.  
  196.       if (this.field_2.length() > 0) {
  197.          var1.append("K=" + this.field_2 + field_0);
  198.       }
  199.  
  200.       if (this.SEP.length() > 0) {
  201.          var1.append("SEP=" + this.SEP + field_0);
  202.       }
  203.  
  204.       if (this.UID.length() > 0) {
  205.          var1.append("UID=" + this.UID + field_0);
  206.       }
  207.  
  208.       if (this.PWD.length() > 0) {
  209.          var1.append("PWD=" + this.PWD + field_0);
  210.       }
  211.  
  212.       if (this.field_1.length() > 0) {
  213.          var1.append("DB=" + this.field_1 + field_0);
  214.       }
  215.  
  216.       if (this.WSID.length() > 0) {
  217.          var1.append("WSID=" + this.WSID + field_0);
  218.       }
  219.  
  220.       if (this.LSQL.length() > 0 && LSQLflag) {
  221.          var1.append("LSQL=" + this.LSQL + field_0);
  222.       }
  223.  
  224.       if (this.TOUT.length() > 0) {
  225.          var1.append("TOUT=" + this.TOUT + field_0);
  226.       }
  227.  
  228.       if (this.DLOG.length() > 0) {
  229.          var1.append("DLOG=" + this.DLOG + field_0);
  230.       }
  231.  
  232.       if (this.NULL.length() > 0) {
  233.          var1.append("NULL=" + this.NULL + field_0);
  234.       }
  235.  
  236.       var1.append("USER=" + suserid + field_0);
  237.       var1.append("SYS=" + jdpsystem + field_0);
  238.       if (this.jdbcDriver.length() > 0) {
  239.          var1.append("jdbcDriver=" + this.jdbcDriver + field_0);
  240.       }
  241.  
  242.       if (this.jdbcPrefix.length() > 0) {
  243.          var1.append("jdbcPrefix=" + this.jdbcPrefix + field_0);
  244.       }
  245.  
  246.       if (this.jdbcSuffix.length() > 0) {
  247.          var1.append("jdbcSuffix=" + this.jdbcSuffix + field_0);
  248.       }
  249.  
  250.       if (this.SQL.length() > 0) {
  251.          var1.append("SQL=" + this.SQL + field_0);
  252.       }
  253.  
  254.       return var1.toString();
  255.    }
  256.  
  257.    public int closeConnection() {
  258.       this.setFCTN("CloseConnection");
  259.       this.setFCTNP("");
  260.       Vector var1 = new Vector();
  261.       int var2 = this.execSQL("", var1);
  262.       this.setFCTN("");
  263.       this.setFCTNP("");
  264.       return var2;
  265.    }
  266.  
  267.    private void setSQL(String var1) {
  268.       this.SQL = var1;
  269.       if (!useJaggServer) {
  270.          this.pSQL = URLEncoder.encode(var1);
  271.       }
  272.  
  273.    }
  274.  
  275.    private String getSQL() {
  276.       return this.SQL;
  277.    }
  278.  
  279.    private void setOUT(String var1) {
  280.       this.pOUT = URLEncoder.encode(this.OUT = var1);
  281.    }
  282.  
  283.    private String getOUT() {
  284.       return this.OUT;
  285.    }
  286.  
  287.    public void setCSTR(String var1) {
  288.       if (var1 != null) {
  289.          this.pCSTR = URLEncoder.encode(this.CSTR = var1);
  290.       }
  291.  
  292.    }
  293.  
  294.    public String getCSTR() {
  295.       return this.CSTR;
  296.    }
  297.  
  298.    public synchronized void setRequestStatus(boolean var1) {
  299.       this.requestInProgress = var1;
  300.    }
  301.  
  302.    public void setJdbcDriver(String var1) {
  303.       if (var1 != null) {
  304.          this.jdbcDriver = var1.trim();
  305.       } else {
  306.          this.jdbcDriver = "";
  307.       }
  308.    }
  309.  
  310.    public String getJdbcDriver() {
  311.       return this.jdbcDriver;
  312.    }
  313.  
  314.    public void setUID(String var1) {
  315.       if (var1 != null) {
  316.          this.pUID = URLEncoder.encode(this.UID = var1);
  317.       }
  318.    }
  319.  
  320.    public String getUID() {
  321.       return this.UID;
  322.    }
  323.  
  324.    public static int getDefaultPort() {
  325.       return defaultPort;
  326.    }
  327.  
  328.    public void setPort(int var1) {
  329.       this.serverPort = var1;
  330.    }
  331.  
  332.    public int getPort() {
  333.       return this.serverPort;
  334.    }
  335.  
  336.    public static void setDefaultPort(int var0) {
  337.       defaultPort = var0;
  338.    }
  339.  
  340.    public void setMRW(String var1) {
  341.       this.pMRW = URLEncoder.encode(this.MRW = var1);
  342.    }
  343.  
  344.    Object invoke(String var1, String var2) {
  345.       String[] var3 = new String[0];
  346.       String[] var4 = new String[0];
  347.       return this.invoke(var1, var2, var3, var4);
  348.    }
  349.  
  350.    Object invoke(String var1, String var2, String[] var3, String[] var4) {
  351.       return this.invoke(var1, var2, var3, var4, (String)null, 0);
  352.    }
  353.  
  354.    Object invoke(String var1, String var2, String[] var3, String[] var4, String var5, int var6) {
  355.       Properties var7 = new Properties();
  356.       if (var1 != null) {
  357.          ((Hashtable)var7).put("objectName", var1);
  358.       }
  359.  
  360.       if (var5 != null) {
  361.          ((Hashtable)var7).put("jobName", var5);
  362.       }
  363.  
  364.       if (var6 != 0) {
  365.          ((Hashtable)var7).put("jobNumber", Integer.toString(var6));
  366.       }
  367.  
  368.       ((Hashtable)var7).put("methodName", var2);
  369.       ((Hashtable)var7).put("parametersSize", Integer.toString(var4.length));
  370.  
  371.       for(int var8 = 0; var8 < var4.length; ++var8) {
  372.          ((Hashtable)var7).put("paramTypes" + Integer.toString(var8), var3[var8]);
  373.          if (var4[var8] != null) {
  374.             ((Hashtable)var7).put("parameters" + Integer.toString(var8), var4[var8]);
  375.          }
  376.       }
  377.  
  378.       ByteArrayOutputStream var17 = new ByteArrayOutputStream();
  379.       var7.save((OutputStream)var17, "parameters");
  380.       String var9 = var17.toString();
  381.       Vector var10 = new Vector();
  382.       this.setFCTN("Invoke");
  383.       this.setFCTNP("");
  384.       int var11 = this.execSQL(var9, var10);
  385.       if (var11 < 0) {
  386.          System.out.println(this.getError());
  387.       }
  388.  
  389.       this.setFCTN("");
  390.       var7 = new Properties();
  391.       if (var10.size() > 0) {
  392.          StringBufferInputStream var12 = new StringBufferInputStream((String)var10.elementAt(0));
  393.  
  394.          try {
  395.             var7.load(var12);
  396.          } catch (Exception var15) {
  397.             ((Throwable)var15).printStackTrace();
  398.          }
  399.  
  400.          return JDPUtils.createObject(JDPUtils.getClass((String)((Hashtable)var7).get("returnType")), (String)((Hashtable)var7).get("returnVal"));
  401.       } else {
  402.          return null;
  403.       }
  404.    }
  405.  
  406.    private String readData(BufferedInputStream var1, BufferedInputStream var2) throws Exception {
  407.       char[] var3 = this.lineBuffer;
  408.       if (var3 == null) {
  409.          var3 = this.lineBuffer = new char[128];
  410.       }
  411.  
  412.       int var4 = var3.length;
  413.       int var5 = 0;
  414.       if (!this.FCTN.equals("ReadFromFile") && !this.FCTN.equals("GetStockData")) {
  415.          while(true) {
  416.             int var12;
  417.             if (useJaggServer) {
  418.                var12 = var2.read();
  419.             } else {
  420.                var12 = var1.read();
  421.             }
  422.  
  423.             switch (var12) {
  424.                case -1:
  425.                case 2:
  426.                   if (var12 == -1 && var5 == 0) {
  427.                      return null;
  428.                   }
  429.  
  430.                   if (var5 == 0) {
  431.                      return "";
  432.                   }
  433.  
  434.                   return String.copyValueOf(var3, 0, var5);
  435.                case 0:
  436.                default:
  437.                   --var4;
  438.                   if (var4 < 0) {
  439.                      var3 = new char[var5 + 128];
  440.                      var4 = var3.length - var5 - 1;
  441.                      System.arraycopy(this.lineBuffer, 0, var3, 0, var5);
  442.                      this.lineBuffer = var3;
  443.                   }
  444.  
  445.                   var3[var5++] = (char)var12;
  446.                case 1:
  447.             }
  448.          }
  449.       } else {
  450.          var3 = new char[20000];
  451.          var4 = var3.length;
  452.          byte var7 = 0;
  453.          int var6;
  454.          if (useJaggServer) {
  455.             var7 = 7;
  456.             var6 = var2.read();
  457.          } else {
  458.             if (this.FCTN.equals("GetStockData")) {
  459.                var7 = 7;
  460.             }
  461.  
  462.             var6 = var1.read();
  463.          }
  464.  
  465.          String var8 = "";
  466.  
  467.          while(var6 != -1 && !var8.equals("JAGGEOF")) {
  468.             --var4;
  469.             if (var4 < 0) {
  470.                this.lineBuffer = var3;
  471.                var3 = new char[var5 + 20000];
  472.                var4 = var3.length - var5 - 1;
  473.                System.arraycopy(this.lineBuffer, 0, var3, 0, var5);
  474.                this.lineBuffer = null;
  475.             }
  476.  
  477.             var3[var5++] = (char)var6;
  478.             if (useJaggServer) {
  479.                if (var5 >= 7) {
  480.                   var8 = String.copyValueOf(var3, var5 - var7, var7);
  481.                }
  482.  
  483.                if (!var8.equals("JAGGEOF")) {
  484.                   var6 = var2.read();
  485.                }
  486.             } else {
  487.                if (var5 >= 7) {
  488.                   var8 = String.copyValueOf(var3, var5 - var7, var7);
  489.                }
  490.  
  491.                if (!var8.equals("JAGGEOF")) {
  492.                   var6 = var1.read();
  493.                }
  494.             }
  495.          }
  496.  
  497.          if (var5 == var7) {
  498.             return null;
  499.          } else {
  500.             if (var5 < 100) {
  501.                String var9 = String.copyValueOf(var3, 0, var5 - var7);
  502.                if (var9.indexOf("FILE_READ_FAILED") >= 0) {
  503.                   return null;
  504.                }
  505.             }
  506.  
  507.             return String.copyValueOf(var3, 0, var5 - var7);
  508.          }
  509.       }
  510.    }
  511.  
  512.    public String getMRW() {
  513.       return this.MRW;
  514.    }
  515.  
  516.    public void setDB(String var1) {
  517.       this.pDB = URLEncoder.encode(this.field_1 = var1);
  518.    }
  519.  
  520.    public String getDB() {
  521.       return this.field_1;
  522.    }
  523.  
  524.    private void setK(String var1) {
  525.       this.field_3 = URLEncoder.encode(this.field_2 = var1);
  526.    }
  527.  
  528.    private String getK() {
  529.       return this.field_2;
  530.    }
  531.  
  532.    public void setJdbcPrefix(String var1) {
  533.       if (var1 != null) {
  534.          this.jdbcPrefix = var1.trim();
  535.       } else {
  536.          this.jdbcPrefix = "";
  537.       }
  538.    }
  539.  
  540.    public String getJdbcPrefix() {
  541.       return this.jdbcPrefix;
  542.    }
  543.  
  544.    public int getColumnType(int var1) {
  545.       return this.columnType != null && var1 < this.columnType.length ? this.columnType[var1] : -1;
  546.    }
  547.  
  548.    public JDPJagg(String var1) {
  549.       this.setServer(var1);
  550.       this.setPort(defaultPort);
  551.       this.setFCTN(this.FCTN);
  552.       this.setFCTNP(this.FCTNP);
  553.       this.setDSN(this.DSN);
  554.       this.setCSTR(this.CSTR);
  555.       this.setOUT(this.OUT);
  556.       this.setSEP(this.SEP);
  557.       this.setMRW(this.MRW);
  558.       this.setUID(this.UID);
  559.       this.setPWD(this.PWD);
  560.       this.setDB(this.field_1);
  561.       this.setWSID(this.WSID);
  562.       this.field_2 = "JDP09betaERW9Q";
  563.       String var10001 = this.field_2;
  564.       this.field_2 = var10001 + version;
  565.       this.setK(this.field_2);
  566.       this.setRowCount(0);
  567.       this.setColumnCount(0);
  568.       this.setError("");
  569.       this.setLSQL(this.LSQL);
  570.       this.setTOUT(this.TOUT);
  571.       this.setDLOG(this.DLOG);
  572.       this.setNULL(this.NULL);
  573.       if (useJaggServer) {
  574.          this.setDropConnectionAfter(30);
  575.       }
  576.  
  577.    }
  578.  
  579.    void startJaggServerCxn(BufferedOutputStream var1, BufferedInputStream var2) {
  580.       new JaggServerCxn(jaggServer, var1, var2, 0L);
  581.    }
  582.  
  583.    public void setDropConnectionAfter(int var1) {
  584.       this.dropAfterSeconds = var1;
  585.       this.dropConnectionThreadReady = true;
  586.       this.keepConnectionOpen = true;
  587.    }
  588.  
  589.    int processDirectConnection(Vector var1) {
  590.       int var2 = 0;
  591.       if (this.jdbcDirect == null) {
  592.          this.jdbcDirect = new JDPJdbcDirect();
  593.          if (this.jdbcDriver.equals("")) {
  594.             this.jdbcDirect.setJdbcDriver("sun.jdbc.odbc.JdbcOdbcDriver");
  595.          } else {
  596.             this.jdbcDirect.setJdbcDriver(this.jdbcDriver);
  597.          }
  598.  
  599.          if (this.jdbcPrefix.equals("")) {
  600.             this.jdbcDirect.setJdbcPrefix("jdbc:odbc:");
  601.          } else {
  602.             this.jdbcDirect.setJdbcPrefix(this.jdbcPrefix);
  603.          }
  604.  
  605.          if (this.jdbcSuffix.equals("")) {
  606.             this.jdbcDirect.setJdbcSuffix(this.DSN);
  607.          } else {
  608.             this.jdbcDirect.setJdbcSuffix(this.jdbcSuffix);
  609.          }
  610.  
  611.          this.jdbcDirect.setUID(this.UID);
  612.          this.jdbcDirect.setPWD(this.PWD);
  613.          this.jdbcDirect.setCSTR(this.CSTR);
  614.       }
  615.  
  616.       if (!this.getMRW().equals("")) {
  617.          this.jdbcDirect.setMaxRows(Integer.parseInt(this.getMRW()));
  618.       }
  619.  
  620.       if (!this.getTOUT().equals("")) {
  621.          this.jdbcDirect.setTimeOut(Integer.parseInt(this.getTOUT()));
  622.       }
  623.  
  624.       var2 = this.jdbcDirect.execSQL(this.SQL.toString(), var1);
  625.       this.setColumnCount(this.jdbcDirect.getColumnCount());
  626.       this.setRowCount(this.jdbcDirect.getRowCount());
  627.       return var2;
  628.    }
  629.  
  630.    public void setJdbcDirect(boolean var1) {
  631.       this.useJdbcDirect = var1;
  632.    }
  633.  
  634.    public void run() {
  635.       this.dropConnectionThreadReady = false;
  636.  
  637.       try {
  638.          Thread.sleep((long)(this.dropAfterSeconds * 1000));
  639.       } catch (Exception var1) {
  640.       }
  641.  
  642.       if (!this.keepConnectionOpenAlways && !this.dropConnectionThreadReady) {
  643.          this.keepConnectionOpen = false;
  644.          if (!this.requestInProgress) {
  645.             this.closeConnections((BufferedInputStream)null);
  646.          }
  647.       }
  648.  
  649.       this.thisThread = null;
  650.    }
  651.  
  652.    public boolean sendEventToClient(String var1, String var2, Event var3) {
  653.       String var4 = this.getServer();
  654.       int var5 = this.getPort();
  655.       if (var1 == null) {
  656.          return false;
  657.       } else {
  658.          this.setServer(var1);
  659.          this.setPort(4900);
  660.          this.setKeepConnectionOpen(false);
  661.          Properties var6 = new Properties();
  662.          ((Hashtable)var6).put("requestName", var2);
  663.          ((Hashtable)var6).put("requestEventId", Integer.toString(var3.id));
  664.          if (var3.arg instanceof String) {
  665.             ((Hashtable)var6).put("requestArg", var3.arg);
  666.          }
  667.  
  668.          ByteArrayOutputStream var7 = new ByteArrayOutputStream();
  669.          var6.save((OutputStream)var7, "parameters");
  670.          String var8 = var7.toString();
  671.          Vector var9 = new Vector();
  672.          this.setFCTN("sendEventToClient");
  673.          int var10 = this.execSQL(var8, var9);
  674.          this.setFCTN("");
  675.          this.setServer(var4);
  676.          this.setPort(var5);
  677.          return var10 >= 0;
  678.       }
  679.    }
  680.  
  681.    private void setError(String var1) {
  682.       if (var1.startsWith("JAGG_ERROR:")) {
  683.          this.lastError = var1.substring(11);
  684.       } else {
  685.          this.lastError = var1;
  686.       }
  687.    }
  688.  
  689.    public String getError() {
  690.       return this.lastError;
  691.    }
  692.  
  693.    void loadSettings(Object var1) {
  694.       this.setJdbcDriver("");
  695.       this.setJdbcPrefix("");
  696.       this.setJdbcSuffix("");
  697.       this.setJdbcDirect(false);
  698.       this.setUID("");
  699.       this.setPWD("");
  700.       if (var1 instanceof JDPUser) {
  701.          JDPUser var2 = (JDPUser)var1;
  702.          if (useJaggServer) {
  703.             this.setJdbcDriver(var2.jdbcDriver);
  704.             this.setJdbcPrefix(var2.jdbcPrefix);
  705.             this.setJdbcSuffix(var2.jdbcSuffix);
  706.             if (var2.jdbcDirect != null) {
  707.                this.setJdbcDirect(var2.jdbcDirect.equals("Yes"));
  708.             }
  709.          }
  710.  
  711.          this.setUID(var2.jdbcUserid);
  712.          this.setPWD(var2.jdbcPassword);
  713.          this.setDSN(var2.jaggDSN);
  714.          this.setCSTR(var2.jaggCSTR);
  715.       } else {
  716.          this.checkSelectDSN(var1);
  717.       }
  718.    }
  719.  
  720.    public void setServer(String var1) {
  721.       this.SERV = var1;
  722.       int var2 = var1.indexOf("http://");
  723.       if (var2 >= 0) {
  724.          int var6 = var1.substring(var2 + 7).indexOf("/");
  725.          this.JaggSERV = var1.substring(var2 + 7, var2 + 7 + var6);
  726.       } else {
  727.          var2 = var1.indexOf("https://");
  728.          if (var2 >= 0) {
  729.             int var5 = var1.substring(var2 + 8).indexOf("/");
  730.             this.JaggSERV = var1.substring(var2 + 8, var2 + 8 + var5);
  731.          } else {
  732.             int var3 = var1.indexOf("/");
  733.             if (var3 > 0) {
  734.                this.JaggSERV = var1.substring(0, var3);
  735.             } else {
  736.                this.JaggSERV = var1;
  737.             }
  738.          }
  739.       }
  740.    }
  741.  
  742.    public String getServer() {
  743.       return this.SERV;
  744.    }
  745.  
  746.    public void setFCTNP(String var1) {
  747.       this.pFCTNP = URLEncoder.encode(this.FCTNP = var1);
  748.    }
  749.  
  750.    public String getFCTNP() {
  751.       return this.FCTNP;
  752.    }
  753.  
  754.    public void setPWD(String var1) {
  755.       if (var1 != null) {
  756.          this.pPWD = URLEncoder.encode(this.PWD = var1);
  757.       }
  758.    }
  759.  
  760.    public String getPWD() {
  761.       return this.PWD;
  762.    }
  763.  
  764.    void setSystem(String var1) {
  765.       jdpsystem = var1;
  766.    }
  767.  
  768.    private String toURL() {
  769.       if (this.pDSN.equals("")) {
  770.          this.setDSN(this.jdbcSuffix);
  771.       }
  772.  
  773.       this.CSTR = "DSN=" + this.DSN + ";UID=" + this.UID + ";PWD=" + this.PWD + ";";
  774.       this.setCSTR(this.CSTR);
  775.       String var1 = this.SERV + "?DSN=" + this.pDSN + "&CSTR=" + this.pCSTR + "&OUT=" + this.pOUT + "&MRW=" + this.pMRW;
  776.       if (this.pFCTN.compareTo("") != 0) {
  777.          var1 = var1 + "&FCTN=" + this.pFCTN;
  778.       }
  779.  
  780.       if (this.pFCTNP.compareTo("") != 0) {
  781.          var1 = var1 + "&FCTNP=" + this.pFCTNP;
  782.       }
  783.  
  784.       if (this.field_3.compareTo("") != 0) {
  785.          var1 = var1 + "&K=" + this.field_3;
  786.       }
  787.  
  788.       if (this.pSEP.compareTo("") != 0) {
  789.          var1 = var1 + "&SEP=" + this.pSEP;
  790.       }
  791.  
  792.       if (this.pUID.compareTo("") != 0) {
  793.          var1 = var1 + "&UID=" + this.pUID;
  794.       }
  795.  
  796.       if (this.pPWD.compareTo("") != 0) {
  797.          var1 = var1 + "&PWD=" + this.pPWD;
  798.       }
  799.  
  800.       if (this.pDB.compareTo("") != 0) {
  801.          var1 = var1 + "&DB=" + this.pDB;
  802.       }
  803.  
  804.       if (this.pWSID.compareTo("") != 0) {
  805.          var1 = var1 + "&WSID=" + this.pWSID;
  806.       }
  807.  
  808.       if (this.pLSQL.compareTo("") != 0 && LSQLflag) {
  809.          var1 = var1 + "&LSQL=" + this.pLSQL;
  810.       }
  811.  
  812.       if (this.pTOUT.compareTo("") != 0) {
  813.          var1 = var1 + "&TOUT=" + this.pTOUT;
  814.       }
  815.  
  816.       if (this.pDLOG.compareTo("") != 0) {
  817.          var1 = var1 + "&DLOG=" + this.pDLOG;
  818.       }
  819.  
  820.       if (this.pNULL.compareTo("") != 0) {
  821.          var1 = var1 + "&NULL=" + this.pNULL;
  822.       }
  823.  
  824.       this.sqlCounter = (new Date()).getTime();
  825.       var1 = var1 + "&SCNTR=" + Long.toString((long)(this.sqlCounter++));
  826.       var1 = var1 + "&SQL=" + this.pSQL;
  827.       return var1;
  828.    }
  829.  
  830.    private synchronized void closeConnections(BufferedInputStream var1) {
  831.       this.requestInProgress = false;
  832.  
  833.       try {
  834.          if (var1 != null) {
  835.             ((FilterInputStream)var1).close();
  836.          }
  837.  
  838.          if (useJaggServer && this.serverRequest != null && !this.keepConnectionOpen) {
  839.             String var2 = "5         ";
  840.             char[] var3 = new char[10];
  841.             var2.getChars(0, 10, var3, 0);
  842.             int var4 = 0;
  843.  
  844.             do {
  845.                this.serverRequest.write(var3[var4]);
  846.                ++var4;
  847.             } while(var4 < 10);
  848.  
  849.             this.serverRequest.flush();
  850.             String var8 = "Close";
  851.             var3 = new char[5];
  852.             var8.getChars(0, 5, var3, 0);
  853.             int var5 = 0;
  854.  
  855.             do {
  856.                this.serverRequest.write(var3[var5]);
  857.                ++var5;
  858.             } while(var5 < 5);
  859.  
  860.             this.serverRequest.flush();
  861.             if (this.server != null) {
  862.                this.server.close();
  863.             }
  864.  
  865.             this.serverRequest = null;
  866.             this.serverResponse = null;
  867.             this.server = null;
  868.             return;
  869.          }
  870.       } catch (Exception var6) {
  871.          this.server = null;
  872.          this.serverRequest = null;
  873.       }
  874.  
  875.    }
  876.  
  877.    void loadJdbcDataSources() {
  878.       if (!this.getDSN().equals("")) {
  879.          String var1 = "SELECT * FROM JDPDataSrc";
  880.          Vector var2 = new Vector();
  881.          int var3 = this.execSQL(var1, var2);
  882.          if (var3 >= 0) {
  883.             var3 = var2.size();
  884.             DSdatasource = new String[var3];
  885.             DSjdbcdriver = new String[var3];
  886.             DSjdbcprefix = new String[var3];
  887.             DSjdbcsuffix = new String[var3];
  888.             DSconnectstring = new String[var3];
  889.             DSsourcetype = new String[var3];
  890.             DSjdbcdirect = new String[var3];
  891.  
  892.             for(int var4 = 0; var4 < var2.size(); ++var4) {
  893.                StringTokenizer var5 = new StringTokenizer((String)var2.elementAt(var4), this.getSEP());
  894.                DSdatasource[var4] = var5.nextToken().trim();
  895.                if (var5.countTokens() > 2) {
  896.                   DSjdbcdriver[var4] = var5.nextToken().trim();
  897.                   DSjdbcprefix[var4] = var5.nextToken().trim();
  898.                   DSjdbcsuffix[var4] = var5.nextToken().trim();
  899.                   DSconnectstring[var4] = var5.nextToken().trim();
  900.                   DSsourcetype[var4] = var5.nextToken().trim();
  901.                   DSjdbcdirect[var4] = var5.nextToken().trim();
  902.                } else {
  903.                   DSjdbcdriver[var4] = "";
  904.                   DSjdbcprefix[var4] = "";
  905.                   DSjdbcsuffix[var4] = "";
  906.                   DSconnectstring[var4] = "";
  907.                   DSsourcetype[var4] = "";
  908.                   DSjdbcdirect[var4] = "";
  909.                }
  910.             }
  911.  
  912.          }
  913.       }
  914.    }
  915.  
  916.    void remoteJob(String var1, JDPStatusMessage var2, Object var3) {
  917.       this.execSQL(var1, (Vector)null);
  918.  
  919.       try {
  920.          for(String var4 = this.readData((BufferedInputStream)null, this.serverResponse); var4 != null; var4 = this.readData((BufferedInputStream)null, this.serverResponse)) {
  921.             StringTokenizer var6 = new StringTokenizer(var4, "\u0003");
  922.  
  923.             while(var6.hasMoreTokens()) {
  924.                String var5 = var6.nextToken().trim();
  925.  
  926.                try {
  927.                   int var7 = Integer.parseInt(var5);
  928.                   var2.setStatusMsg(var6.nextToken().trim(), var7);
  929.                } catch (Exception var9) {
  930.                   if (var6.hasMoreTokens() && var3 != null && var3 instanceof JDPClassLayout) {
  931.                      ((JDPClassLayout)var3).parameters.put(var5, var6.nextToken().trim());
  932.                      ((JDPClassLayout)var3).refresh();
  933.                   }
  934.                }
  935.             }
  936.          }
  937.  
  938.       } catch (Exception var10) {
  939.          ((Throwable)var10).printStackTrace();
  940.       }
  941.    }
  942.  
  943.    public void setWSID(String var1) {
  944.       this.pWSID = URLEncoder.encode(this.WSID = var1);
  945.    }
  946.  
  947.    public String getWSID() {
  948.       return this.WSID;
  949.    }
  950.  
  951.    void sendData(BufferedOutputStream var1) throws Exception {
  952.       for(int var4 = 0; var4 < this.insertType.length; ++var4) {
  953.          String var2 = Integer.toString(this.insertType[var4]);
  954.  
  955.          for(int var5 = 0; var5 < var2.length(); ++var5) {
  956.             var1.write(var2.charAt(var5));
  957.          }
  958.  
  959.          var1.write(4);
  960.       }
  961.  
  962.       var1.write(3);
  963.  
  964.       for(int var8 = 0; var8 < this.insertData.size(); ++var8) {
  965.          String[] var3 = (String[])this.insertData.elementAt(var8);
  966.  
  967.          for(int var9 = 0; var9 < var3.length; ++var9) {
  968.             String var7 = var3[var9];
  969.  
  970.             for(int var6 = 0; var6 < var7.length(); ++var6) {
  971.                var1.write(var7.charAt(var6));
  972.             }
  973.  
  974.             var1.write(4);
  975.          }
  976.  
  977.          var1.write(3);
  978.       }
  979.  
  980.    }
  981.  
  982.    public static void cleanUp() {
  983.    }
  984.  
  985.    public void setSEP(String var1) {
  986.       this.pSEP = URLEncoder.encode(this.SEP = var1);
  987.    }
  988.  
  989.    public String getSEP() {
  990.       return this.SEP;
  991.    }
  992.  
  993.    public void setDLOG(String var1) {
  994.       this.pDLOG = URLEncoder.encode(this.DLOG = var1);
  995.    }
  996.  
  997.    public String getDLOG() {
  998.       return this.DLOG;
  999.    }
  1000.  
  1001.    public synchronized void setKeepConnectionOpen(boolean var1) {
  1002.       this.keepConnectionOpenAlways = var1;
  1003.       if (!this.keepConnectionOpenAlways) {
  1004.          this.keepConnectionOpen = false;
  1005.          if (this.thisThread != null) {
  1006.             this.thisThread.stop();
  1007.          }
  1008.  
  1009.          if (!this.requestInProgress) {
  1010.             this.closeConnections((BufferedInputStream)null);
  1011.          }
  1012.       }
  1013.  
  1014.    }
  1015.  
  1016.    public boolean getKeepConnectionOpen() {
  1017.       return this.keepConnectionOpenAlways;
  1018.    }
  1019.  
  1020.    public int execSQL(String var1, Vector var2) {
  1021.       this.setRequestStatus(true);
  1022.       this.setRowCount(0);
  1023.       this.setColumnCount(0);
  1024.       this.columnType = null;
  1025.       this.setError("");
  1026.       if (this.dropConnectionThreadReady) {
  1027.          this.thisThread = new Thread(this);
  1028.          this.thisThread.start();
  1029.       }
  1030.  
  1031.       Object var3 = null;
  1032.       Object var4 = null;
  1033.       BufferedInputStream var5 = null;
  1034.       int var6 = 0;
  1035.       if (!activated) {
  1036.          this.setRowCount(-1);
  1037.          this.setColumnCount(-1);
  1038.          this.setError("Software Violation - this class may only be used in conjunction with JDesignerPro.");
  1039.          System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
  1040.          return -1;
  1041.       } else {
  1042.          this.setSQL(var1);
  1043.          if (this.useJdbcDirect && this.FCTN.equals("")) {
  1044.             var6 = this.processDirectConnection(var2);
  1045.             return var6;
  1046.          } else {
  1047.             try {
  1048.                if (!useJaggServer) {
  1049.                   URL var21 = new URL(this.toURL());
  1050.                   URLConnection var23 = var21.openConnection();
  1051.                   var5 = new BufferedInputStream(var23.getInputStream());
  1052.                } else {
  1053.                   if (this.prevJaggSERV == null || !this.JaggSERV.equals(this.prevJaggSERV)) {
  1054.                      try {
  1055.                         this.thisInetAddress = InetAddress.getByName(this.JaggSERV);
  1056.                         this.prevJaggSERV = this.JaggSERV;
  1057.                      } catch (Exception var17) {
  1058.                      }
  1059.                   }
  1060.  
  1061.                   if (this.server != null) {
  1062.                      while(this.serverResponse.available() > 0) {
  1063.                         this.serverResponse.read();
  1064.                      }
  1065.                   } else if (jaggServer == null || this.serverPort == 4900 || jaggServerPath != null && !jaggServerPath.equals(this.JaggSERV)) {
  1066.                      try {
  1067.                         this.server = new Socket(this.thisInetAddress, this.serverPort);
  1068.                         this.serverResponse = new BufferedInputStream(this.server.getInputStream());
  1069.                         this.serverRequest = new BufferedOutputStream(this.server.getOutputStream());
  1070.                      } catch (Exception var18) {
  1071.                         if (this.SERV.indexOf("JDPJagg.exe") <= 0 || JDesignerPro.executable) {
  1072.                            throw var18;
  1073.                         }
  1074.  
  1075.                         try {
  1076.                            useJaggServer = false;
  1077.                            this.setSQL(var1);
  1078.                            URL var20 = new URL(this.toURL());
  1079.                            URLConnection var22 = var20.openConnection();
  1080.                            var5 = new BufferedInputStream(var22.getInputStream());
  1081.                         } catch (Exception var16) {
  1082.                         }
  1083.                      }
  1084.                   } else {
  1085.                      if (jaggServerPath == null) {
  1086.                         jaggServerPath = this.JaggSERV;
  1087.                      }
  1088.  
  1089.                      PipedOutputStream var7 = new PipedOutputStream();
  1090.                      PipedInputStream var8 = new PipedInputStream();
  1091.                      PipedInputStream var9 = new PipedInputStream(var7);
  1092.                      this.serverOut = new PipedOutputStream(var8);
  1093.                      this.serverResponse = new BufferedInputStream(var8);
  1094.                      this.serverRequest = new BufferedOutputStream(var7);
  1095.                      this.startJaggServerCxn(new BufferedOutputStream(this.serverOut), new BufferedInputStream(var9));
  1096.                      this.keepConnectionOpen = false;
  1097.                   }
  1098.  
  1099.                   if (useJaggServer) {
  1100.                      String var26 = this.formatRequest();
  1101.                      int var28 = var26.length();
  1102.                      String var32 = Integer.toString(var28) + "          ";
  1103.                      var32 = var32.substring(0, 10);
  1104.                      char[] var10 = new char[10];
  1105.                      var32.getChars(0, 10, var10, 0);
  1106.                      int var11 = 0;
  1107.  
  1108.                      do {
  1109.                         this.serverRequest.write(var10[var11]);
  1110.                         ++var11;
  1111.                      } while(var11 < 10);
  1112.  
  1113.                      this.serverRequest.flush();
  1114.                      var10 = new char[var28];
  1115.                      var26.getChars(0, var28, var10, 0);
  1116.                      if (this.mainmsg == null) {
  1117.                         for(int var36 = 0; var36 < var28; ++var36) {
  1118.                            this.serverRequest.write(var10[var36]);
  1119.                         }
  1120.                      } else {
  1121.                         var11 = var28 / 20;
  1122.                         int var12 = var11;
  1123.                         int var13 = 0;
  1124.  
  1125.                         for(int var14 = 0; var14 < var28; this.serverRequest.flush()) {
  1126.                            for(var13 = var14; var13 < var11; ++var13) {
  1127.                               this.serverRequest.write(var10[var13]);
  1128.                            }
  1129.  
  1130.                            var14 = var13;
  1131.                            var11 += var12;
  1132.                            if (var11 > var28) {
  1133.                               var11 = var28;
  1134.                            }
  1135.                         }
  1136.                      }
  1137.  
  1138.                      this.serverRequest.flush();
  1139.                      if (this.FCTN.equals("BINS")) {
  1140.                         this.sendData(this.serverRequest);
  1141.                         this.serverRequest.write(1);
  1142.                         this.serverRequest.flush();
  1143.                      }
  1144.                   }
  1145.                }
  1146.  
  1147.                if (DEBUG) {
  1148.                   System.out.println("DEBUG: " + this.toURL());
  1149.                }
  1150.  
  1151.                if (var2 == null) {
  1152.                   return 0;
  1153.                }
  1154.  
  1155.                String var27 = this.readData(var5, this.serverResponse);
  1156.                if (DEBUG) {
  1157.                   System.out.println("DEBUG: " + var27);
  1158.                }
  1159.  
  1160.                if (var27 != null && var27.startsWith("JAGG_ERROR")) {
  1161.                   this.setRowCount(-1);
  1162.                   this.setColumnCount(-1);
  1163.                   this.setError(var27);
  1164.                   System.out.println(this.getError());
  1165.                   this.keepConnectionOpen = false;
  1166.                   this.closeConnections(var5);
  1167.                   return -1;
  1168.                }
  1169.  
  1170.                if (var27 == null && !this.FCTN.equals("ReadFromFile") && !this.FCTN.equals("GetStockData")) {
  1171.                   this.setRowCount(-1);
  1172.                   this.setColumnCount(-1);
  1173.                   System.out.println("JAGG returned null - contact BulletProof");
  1174.                   this.keepConnectionOpen = false;
  1175.                   this.closeConnections(var5);
  1176.                   return -1;
  1177.                }
  1178.  
  1179.                if (var27 == null && (this.FCTN.equals("ReadFromFile") || this.FCTN.equals("GetStockData"))) {
  1180.                   this.setRowCount(-1);
  1181.                   this.setColumnCount(-1);
  1182.                   System.out.println("File empty or does not exist: " + this.FCTNP);
  1183.                   this.keepConnectionOpen = false;
  1184.                   this.closeConnections(var5);
  1185.                   return -1;
  1186.                }
  1187.  
  1188.                if (useJaggServer && var27 != null && this.FCTN.equals("ReadFromFile") || var27 != null && this.FCTN.equals("GetStockData")) {
  1189.                   this.setRowCount(1);
  1190.                   this.setColumnCount(1);
  1191.                   if (var27.length() > 0) {
  1192.                      ++this.rowCount;
  1193.                      var2.addElement(var27);
  1194.                   }
  1195.  
  1196.                   this.closeConnections(var5);
  1197.                   return 1;
  1198.                }
  1199.  
  1200.                this.rowCount = 0;
  1201.                if (var27 != null && !var27.startsWith("JAGG_RESULT_ROWS:") && !var27.startsWith("JAGG_EMPTY_RESULT")) {
  1202.                   if (var27.length() > 0 && var27.startsWith("JAGG_COLUMN_DEFS:")) {
  1203.                      StringTokenizer var29 = new StringTokenizer(var27, this.getSEP());
  1204.                      var29.nextToken();
  1205.                      this.columnType = new int[var29.countTokens()];
  1206.  
  1207.                      for(int var34 = 0; var29.hasMoreTokens(); this.columnType[var34++] = Integer.parseInt(var29.nextToken())) {
  1208.                      }
  1209.  
  1210.                      var27 = this.readData(var5, this.serverResponse);
  1211.                   }
  1212.  
  1213.                   StringTokenizer var30 = new StringTokenizer(var27, this.getSEP());
  1214.                   this.setColumnCount(var30.countTokens());
  1215.  
  1216.                   for(; var27 != null && !var27.startsWith("JAGG_RESULT_ROWS:"); var27 = this.readData(var5, this.serverResponse)) {
  1217.                      if (var27.length() > 0) {
  1218.                         ++this.rowCount;
  1219.                         var2.addElement(var27);
  1220.                      }
  1221.                   }
  1222.                }
  1223.  
  1224.                if (var27 != null && var27.startsWith("JAGG_RESULT_ROWS:")) {
  1225.                   String var31 = var27.substring(17);
  1226.                   if (var31.indexOf(field_0) >= 0) {
  1227.                      var31 = var31.substring(0, var31.indexOf(field_0));
  1228.                   }
  1229.  
  1230.                   var6 = Integer.parseInt(var31);
  1231.                } else {
  1232.                   var6 = 0;
  1233.                }
  1234.  
  1235.                this.closeConnections(var5);
  1236.             } catch (Exception var19) {
  1237.                if (this.FCTN.equals("sendEventToClient")) {
  1238.                   return -1;
  1239.                }
  1240.  
  1241.                if (useJaggServer) {
  1242.                   this.keepConnectionOpen = false;
  1243.                   this.setError("Could not connect to JaggServer");
  1244.                   System.out.println("Could not connect to JaggServer. Check that JaggServer is running");
  1245.                } else {
  1246.                   this.setError(((Throwable)var19).toString());
  1247.                   System.out.println("Could not connect to JDPJagg.exe. Check that JDPJagg.exe is in CGI directory and webserver is running.");
  1248.                }
  1249.  
  1250.                this.setRowCount(-1);
  1251.                this.setColumnCount(0);
  1252.                this.closeConnections(var5);
  1253.                return -1;
  1254.             }
  1255.  
  1256.             if (DEBUG) {
  1257.                System.out.println("DEBUG: actualrowCount=" + var6 + ", rowCount=" + this.getRowCount() + ", columnCount=" + this.getColumnCount());
  1258.             }
  1259.  
  1260.             this.SQL = null;
  1261.             return var6;
  1262.          }
  1263.       }
  1264.    }
  1265.  
  1266.    void setMainMsg(JDPStatusMessage var1) {
  1267.       this.mainmsg = var1;
  1268.    }
  1269.  
  1270.    private void setRowCount(int var1) {
  1271.       this.rowCount = var1;
  1272.    }
  1273.  
  1274.    public int getRowCount() {
  1275.       return this.rowCount;
  1276.    }
  1277.  
  1278.    public void setLSQL(String var1) {
  1279.       this.pLSQL = URLEncoder.encode(this.LSQL = var1);
  1280.    }
  1281.  
  1282.    public String getLSQL() {
  1283.       return this.LSQL;
  1284.    }
  1285.  
  1286.    public void setTOUT(String var1) {
  1287.       this.pTOUT = URLEncoder.encode(this.TOUT = var1);
  1288.    }
  1289.  
  1290.    private void setColumnCount(int var1) {
  1291.       this.columnCount = var1;
  1292.    }
  1293.  
  1294.    public int getColumnCount() {
  1295.       return this.columnCount;
  1296.    }
  1297.  
  1298.    public String getTOUT() {
  1299.       return this.TOUT;
  1300.    }
  1301.  
  1302.    public void setNULL(String var1) {
  1303.       this.pNULL = URLEncoder.encode(this.NULL = var1);
  1304.    }
  1305.  
  1306.    public String getNULL() {
  1307.       return this.NULL;
  1308.    }
  1309.  
  1310.    public static void setUseJaggServer(boolean var0) {
  1311.       useJaggServer = var0;
  1312.    }
  1313.  
  1314.    void setUserid(String var1) {
  1315.       suserid = var1;
  1316.    }
  1317.  
  1318.    void checkSelectDSN(Object var1) {
  1319.       if (var1 instanceof JDPSelectDSN) {
  1320.          JDPSelectDSN var2 = (JDPSelectDSN)var1;
  1321.          if (useJaggServer) {
  1322.             this.setJdbcDriver(var2.jdbcdriver.getText());
  1323.             this.setJdbcPrefix(var2.jdbcprefix.getText());
  1324.             this.setJdbcSuffix(var2.jdbcsuffix.getText());
  1325.             if (var2.jdbcdirect != null) {
  1326.                this.setJdbcDirect(var2.jdbcdirect.getSelectedItem().equals("Yes"));
  1327.             }
  1328.          }
  1329.  
  1330.          this.setUID(var2.userid.getText());
  1331.          this.setPWD(var2.password.getText());
  1332.          this.setDSN(var2.datasource.getText());
  1333.          this.setCSTR(var2.connectstring.getText());
  1334.       }
  1335.  
  1336.    }
  1337.  
  1338.    public void setDSN(String var1) {
  1339.       if (var1 != null) {
  1340.          var1 = var1.trim();
  1341.       }
  1342.  
  1343.       if (var1 != null) {
  1344.          this.pDSN = URLEncoder.encode(this.DSN = var1);
  1345.       }
  1346.  
  1347.       if (!useJaggServer && (this.DSN == null || this.DSN.equals(""))) {
  1348.          this.pDSN = URLEncoder.encode(this.DSN = this.jdbcSuffix);
  1349.       }
  1350.  
  1351.       this.loadJdbcSettings(var1);
  1352.    }
  1353.  
  1354.    public String getDSN() {
  1355.       return this.DSN;
  1356.    }
  1357.  
  1358.    public void setJdbcSuffix(String var1) {
  1359.       if (var1 != null) {
  1360.          this.jdbcSuffix = var1.trim();
  1361.       } else {
  1362.          this.jdbcSuffix = "";
  1363.       }
  1364.  
  1365.       if (!useJaggServer && !this.jdbcSuffix.trim().equals("") && !this.jdbcSuffix.trim().equals(this.DSN)) {
  1366.          this.setDSN(this.jdbcSuffix.trim());
  1367.       }
  1368.  
  1369.    }
  1370.  
  1371.    public String getJdbcSuffix() {
  1372.       return this.jdbcSuffix;
  1373.    }
  1374.  
  1375.    public JDPJagg getInstance() {
  1376.       return this;
  1377.    }
  1378. }
  1379.