⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlstatement.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      SqlStatement.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.contrib.replication;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.TreeMap;import org.xmlBlaster.contrib.InfoHelper;/** * SqlStatement * @author <a href="mailto:michele@laghi.eu">Michele Laghi</a> */public class SqlStatement implements SqlStatementMBean {   final String me;   private String status;   private String replicationPrefix;   private String requestId;   private Map slaves;   private List received;   private List failed;   private String referenceResponse;   private String statement;   private Object mbeanHandle;      public SqlStatement(String replicationPrefix, String requestId, String statement, List slaveList) {      this.status = WAITING;      this.statement = statement;      this.replicationPrefix = replicationPrefix;      this.requestId = requestId;      this.me = "SqlStatement-" + this.replicationPrefix + "-" + this.requestId;      this.slaves = new TreeMap();      for (int i=0; i < slaveList.size(); i++)         this.slaves.put(slaveList.get(i), "");      this.referenceResponse = "";      this.received = new ArrayList();      this.failed = new ArrayList();   }      public void setHandle(Object mbeanHandle) {      this.mbeanHandle = mbeanHandle;   }      public Object getHandle() {      return this.mbeanHandle;   }      public void setResponse(String id, String response, boolean isException) throws Exception {      if (id == null)         throw new Exception("setResponse for '" + this.me + "' failed since id of the slave/master is null");      if (response == null)         throw new Exception("setResponse for '" + this.me + "' failed since response for id '" + id + "' was null");      String resp = (String)this.slaves.get(id);      if (resp != null) {         if (resp.length() > 0)            throw new Exception("setResponse for '" + this.me + "' failed since response for id '" + id + "' has already been received before");         if (this.referenceResponse.length() < 1)            throw new Exception("setResponse for '" + this.me + "' failed for id '" + id + "' since the response of the master has not come yet");         this.slaves.put(id, response);         this.received.add(id);         if (!response.equalsIgnoreCase(this.referenceResponse)) {            this.failed.add(id);            this.status = FAILED;         }         else {            if (this.received.size() == this.slaves.size())               this.status = OK;         }      }      else {         if (this.replicationPrefix.equals(id)) {            this.referenceResponse = response;         }         else            throw new Exception("setResponse for '" + this.me + "' failed for id '" + id + "' since not found among the slaves nor the master");      }      if (isException)         this.status = FAILED;   }      /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getStatus()    */   public String getStatus() {      return this.status;   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getReceived()    */   public int getReceived() {      return this.received.size();   }   public int getAll() {      return this.slaves.size();   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getReceivedList()    */   public String getReceivedList() {      return InfoHelper.getIteratorAsString(this.received.iterator());   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getFailed()    */   public int getFailed() {      return this.failed.size();   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getFailedList()    */   public String getFailedList() {      return InfoHelper.getIteratorAsString(this.failed.iterator());   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getStatement()    */   public String getStatement() {      return this.statement;   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getResponse()    */   public String getResponse() {      return this.referenceResponse;   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getSlaveResponse(java.lang.String)    */   public String getSlaveResponse(String slaveSessionName) {      return (String)this.slaves.get(slaveSessionName);   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getReplicationPrefix()    */   public String getReplicationPrefix() {      return this.replicationPrefix;   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getRequestId()    */   public String getRequestId() {      return this.requestId;   }   /**    * @see org.xmlBlaster.contrib.replication.SqlStatementMBean#getSlaveList()    */   public String getSlaveList() {      return InfoHelper.getIteratorAsString(this.slaves.keySet().iterator());   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -