src/org/objectweb/cjdbc/common/sql/schema/DatabaseProcedure.java

説明を見る。
00001 00025 package org.objectweb.cjdbc.common.sql.schema; 00026 00027 import java.io.Serializable; 00028 import java.sql.SQLException; 00029 import java.util.ArrayList; 00030 00031 import org.objectweb.cjdbc.common.xml.DatabasesXmlTags; 00032 00038 public class DatabaseProcedure implements Serializable 00039 { 00041 public static final int ProcedureResultUnknown = 0; 00043 public static final int ProcedureNoResult = 1; 00045 public static final int ProcedureReturnsResult = 2; 00046 00047 ArrayList parameters; 00048 private String name; 00049 private String remarks; 00050 private int procedureType; 00051 00059 public static int getTypeFromString(String type) 00060 { 00061 if (type.equals(DatabasesXmlTags.VAL_noResult)) 00062 return ProcedureNoResult; 00063 if (type.equals(DatabasesXmlTags.VAL_returnsResult)) 00064 return ProcedureReturnsResult; 00065 else 00066 return ProcedureResultUnknown; 00067 } 00068 00075 public static String getTypeFromInt(int type) 00076 { 00077 switch (type) 00078 { 00079 case ProcedureNoResult : 00080 return DatabasesXmlTags.VAL_noResult; 00081 case ProcedureReturnsResult : 00082 return DatabasesXmlTags.VAL_returnsResult; 00083 default : 00084 return DatabasesXmlTags.VAL_resultUnknown; 00085 } 00086 } 00087 00093 public DatabaseProcedure(String name, String remarks, int procedureType) 00094 { 00095 this.name = name; 00096 this.remarks = remarks; 00097 this.procedureType = procedureType; 00098 this.parameters = new ArrayList(); 00099 } 00100 00106 public void addParameter(DatabaseProcedureParameter param) 00107 { 00108 parameters.add(param); 00109 } 00110 00114 public String getName() 00115 { 00116 return name; 00117 } 00118 00122 public void setName(String name) 00123 { 00124 this.name = name; 00125 } 00126 00130 public ArrayList getParameters() 00131 { 00132 return parameters; 00133 } 00134 00138 public void setParameters(ArrayList parameters) 00139 { 00140 this.parameters = parameters; 00141 } 00142 00146 public int getProcedureType() 00147 { 00148 return procedureType; 00149 } 00150 00154 public void setProcedureType(int procedureType) 00155 { 00156 this.procedureType = procedureType; 00157 } 00158 00162 public String getRemarks() 00163 { 00164 return remarks; 00165 } 00166 00170 public void setRemarks(String remarks) 00171 { 00172 this.remarks = remarks; 00173 } 00174 00183 public void mergeParameters(DatabaseProcedure procedure) throws SQLException 00184 { 00185 if (procedure == null) 00186 return; 00187 00188 ArrayList otherParameters = procedure.getParameters(); 00189 if (otherParameters == null && parameters == null) 00190 return; 00191 00192 if (this.equals(procedure)) 00193 { 00194 // Procedures are the same, no conflict 00195 return; 00196 } 00197 else 00198 { 00199 throw new SQLException("Unable to merge procedure " + getName() 00200 + ": parameters are differents "); 00201 } 00202 } 00203 00211 public boolean equals(Object other) 00212 { 00213 if ((other == null) || !(other instanceof DatabaseProcedure)) 00214 return false; 00215 00216 DatabaseProcedure p = (DatabaseProcedure) other; 00217 return (p.getName().equals(name)) && (p.getParameters().equals(parameters)); 00218 } 00219 00225 public String getXml() 00226 { 00227 StringBuffer info = new StringBuffer(); 00228 info.append("<" + DatabasesXmlTags.ELT_DatabaseProcedure + " " 00229 + DatabasesXmlTags.ATT_name + "=\"" + name + "\" " 00230 + DatabasesXmlTags.ATT_returnType + "=\"" 00231 + getTypeFromInt(procedureType) + "\">"); 00232 for (int i = 0; i < parameters.size(); i++) 00233 info.append(((DatabaseProcedureParameter) parameters.get(i)).getXml()); 00234 info.append("</" + DatabasesXmlTags.ELT_DatabaseProcedure + ">"); 00235 return info.toString(); 00236 } 00237 00238 }

CJDBCversion1.0.4に対してTue Oct 12 15:15:57 2004に生成されました。 doxygen 1.3.8