クラス org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom

org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandomに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandomのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

Implements a random strategy for CREATE TABLE statements.

作者:
Emmanuel Cecchet
バージョン:
1.0

CreateTableRandom.java38 行で定義されています。

Public メソッド

 CreateTableRandom ()
 CreateTableRandom (ArrayList backendList)
ArrayList getBackends (ArrayList backends) throws CreateTableException
String getInformation ()
void addBackendName (String name)
ArrayList getBackendList ()
int getNumberOfNodes ()
void setNumberOfNodes (int numberOfNodes)
String getTableName ()
void setTableName (String tableName)
int getPolicy ()
void setPolicy (int policy)
boolean isDefaultRule ()
String getXml ()

Protected 変数

ArrayList backendList
int nbOfNodes = 0
String tableName = null
int policy

Private 変数

Random random = new Random()


コンストラクタとデストラクタ

org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.CreateTableRandom  ) 
 

Creates a new CreateTableRandom.

CreateTableRandom.java45 行で定義されています。

00046   {
00047     super(CreateTablePolicy.RANDOM);
00048   }

org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.CreateTableRandom ArrayList  backendList  ) 
 

Creates a new CreateTableRandom.

引数:
backendList ArrayList of DatabaseBackend

CreateTableRandom.java55 行で定義されています。

00056   {
00057     super(CreateTablePolicy.RANDOM, backendList);
00058   }


メソッド

void org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.addBackendName String  name  )  [inherited]
 

Add a backend name to the list of backends to wait for.

引数:
name backend name

CreateTableRule.java84 行で定義されています。

00085   {
00086     backendList.add(name);
00087   }

ArrayList org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getBackendList  )  [inherited]
 

Returns the backendList.

戻り値:
ArrayList

CreateTableRule.java94 行で定義されています。

00095   {
00096     return backendList;
00097   }

ArrayList org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.getBackends ArrayList  backends  )  throws CreateTableException [virtual]
 

参照:
org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getBackends(ArrayList)

org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRuleに実装されています.

CreateTableRandom.java63 行で定義されています。

参照先 org.objectweb.cjdbc.controller.backend.DatabaseBackend.getName(), org.objectweb.cjdbc.controller.backend.DatabaseBackend.isWriteEnabled, と org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.random.

00064   {
00065     int size = backends.size();
00066 
00067     if (nbOfNodes == 0)
00068       return null;
00069     else if (nbOfNodes == size)
00070       return backends;
00071 
00072     ArrayList result = new ArrayList(nbOfNodes);
00073     ArrayList clonedList;
00074 
00075     if (backendList.size() > 0)
00076     { // Keep only the backends that are affected by this rule
00077       clonedList = new ArrayList(nbOfNodes);
00078       for (int i = 0; i < size; i++)
00079       {
00080         DatabaseBackend db = (DatabaseBackend) backends.get(i);
00081         if (db.isWriteEnabled() && backendList.contains(db.getName()))
00082           clonedList.add(db);
00083       }
00084     }
00085     else
00086     { // Take all enabled backends
00087       clonedList = new ArrayList(size);
00088       for (int i = 0; i < size; i++)
00089       {
00090         DatabaseBackend db = (DatabaseBackend) backends.get(i);
00091         if (db.isWriteEnabled())
00092           clonedList.add(db);
00093       }
00094     }
00095 
00096     int clonedSize = clonedList.size();
00097 
00098     if (nbOfNodes == clonedSize)
00099       return backends;
00100     else if (nbOfNodes > clonedSize)
00101       throw new CreateTableException(
00102         "Asking for more backends ("
00103           + nbOfNodes
00104           + ") than available ("
00105           + clonedSize
00106           + ")");
00107 
00108     for (int i = 0; i < nbOfNodes; i++)
00109       result.add(clonedList.remove(random.nextInt(clonedSize)));
00110 
00111     return result;
00112   }

String org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.getInformation  )  [virtual]
 

参照:
org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getInformation()

org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRuleに実装されています.

CreateTableRandom.java117 行で定義されています。

00118   {
00119     String s;
00120     if (tableName == null)
00121       s = "Default rule create table on ";
00122     else
00123       s = "Rule for table " + tableName + " create table on ";
00124 
00125     return s + nbOfNodes + " node(s) randomly from " + backendList;
00126   }

int org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getNumberOfNodes  )  [inherited]
 

Returns the number of nodes.

戻り値:
an int value

CreateTableRule.java104 行で定義されています。

参照先 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.nbOfNodes.

00105   {
00106     return nbOfNodes;
00107   }

int org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getPolicy  )  [inherited]
 

Returns the policy.

戻り値:
an int value

CreateTableRule.java144 行で定義されています。

参照先 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.policy.

00145   {
00146     return policy;
00147   }

String org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getTableName  )  [inherited]
 

Returns the table name.

戻り値:
a String value

CreateTableRule.java124 行で定義されています。

参照元 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTablePolicy.addRule().

00125   {
00126     return tableName;
00127   }

String org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getXml  )  [inherited]
 

Gives information about the current policy in xml

戻り値:
a String value in xml

CreateTableRule.java192 行で定義されています。

参照先 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.nbOfNodes, と org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.policy.

00194   {
00195     StringBuffer info = new StringBuffer();
00196     info.append(
00197       "<"
00198         + DatabasesXmlTags.ELT_CreateTable
00199         + " "
00200         + DatabasesXmlTags.ATT_tableName
00201         + "=\""
00202         + tableName
00203         + "\" "
00204         + DatabasesXmlTags.ATT_policy
00205         + "=\""
00206         + CreateTablePolicy.getXmlValue(policy)
00207         + "\" "
00208         + DatabasesXmlTags.ATT_numberOfNodes
00209         + "=\""
00210         + nbOfNodes
00211         + "\">");
00212     ArrayList list = this.getBackendList();
00213     int count = list.size();
00214     for (int i = 0; i < count; i++)
00215     {
00216       info.append(
00217         "<"
00218           + DatabasesXmlTags.ELT_BackendName
00219           + " "
00220           + DatabasesXmlTags.ATT_name
00221           + "=\""
00222           + ((String) list.get(i))
00223           + "\"/>");
00224     }
00225     info.append("</" + DatabasesXmlTags.ELT_CreateTable + ">");
00226     return info.toString();
00227   }

boolean org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.isDefaultRule  )  [inherited]
 

Returns true if this rule is the default rule.

戻り値:
boolean

CreateTableRule.java164 行で定義されています。

00165   {
00166     return this.tableName == null;
00167   }

void org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.setNumberOfNodes int  numberOfNodes  )  [inherited]
 

Sets the number of nodes.

引数:
numberOfNodes the number of nodes to set

CreateTableRule.java114 行で定義されています。

00115   {
00116     this.nbOfNodes = numberOfNodes;
00117   }

void org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.setPolicy int  policy  )  [inherited]
 

Sets the policy.

引数:
policy the policy to set

CreateTableRule.java154 行で定義されています。

00155   {
00156     this.policy = policy;
00157   }

void org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.setTableName String  tableName  )  [inherited]
 

Sets the table name.

引数:
tableName the table name to set

CreateTableRule.java134 行で定義されています。

00135   {
00136     this.tableName = tableName;
00137   }


変数

ArrayList org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.backendList [protected, inherited]
 

List of backend names to wait for.

CreateTableRule.java40 行で定義されています。

int org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.nbOfNodes = 0 [protected, inherited]
 

Number of nodes that must create the table.

CreateTableRule.java43 行で定義されています。

参照元 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getNumberOfNodes(), と org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getXml().

int org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.policy [protected, inherited]
 

CreateTableRule.java51 行で定義されています。

参照元 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getPolicy(), と org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.getXml().

Random org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.random = new Random() [private]
 

CreateTableRandom.java40 行で定義されています。

参照元 org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRandom.getBackends().

String org.objectweb.cjdbc.controller.loadbalancer.policies.createtable.CreateTableRule.tableName = null [protected, inherited]
 

Table name pattern to which this rule apply (null means it is the default rule).

CreateTableRule.java49 行で定義されています。


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0rc6に対してWed May 5 18:02:23 2004に生成されました。 doxygen 1.3.6