I hereby claim:
- I am ruan4261 on github.
- I am ruan4261 (https://keybase.io/ruan4261) on keybase.
- I have a public key ASAfn2eLwHPszSXgEMnlx27WNLKWk8z6gu8UTRaN7MACHAo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| -- Replace ${} with your text | |
| -- Compare the structure of two tables | |
| -- Pay attention to the case of the table name | |
| select v1.table_name,v2.table_name, v1.column_name,v2.column_name, | |
| v1.data_type,v2.data_type,v1.data_length,v2.data_length ,v1.data_precision,v2.data_precision,v1.data_scale,v2.data_scale | |
| from | |
| (select * from user_tab_columns where table_name='${table_A}') v1 left join | |
| (select * from user_tab_columns where table_name='${table_B}') v2 on v1.column_name=v2.column_name |
| /** | |
| * Only for String and ArrayLike. | |
| * Return false if parameter is an object. | |
| * | |
| * @return {boolean} | |
| */ | |
| function isEmpty(obj) { | |
| return ( | |
| obj === undefined || | |
| obj === null || |
| /** | |
| * 对指定明细表指定字段(列)绑定变化事件, 绑定的数据行包括已存在的数据行及未来新建的数据行(该方法只需执行一次) | |
| * | |
| * @param detailIndex 明细表索引是对于当前流程而言的, 与模板无关(同一个明细表在不同节点模板内拥有相同的索引) | |
| * @param fieldId 单个字段的id | |
| * @param func 可用参数列表[rowIdx, changedElement] | |
| */ | |
| function bindDetailFieldChangeEvent(detailIndex, fieldId, func) { | |
| var bindEvent = function (idx) { | |
| var jq = jQuery("#field" + fieldId + "_" + idx); |
| function getUrlParams() { | |
| var query = location.search// from ? to # | |
| var params = {} | |
| if (query.length > 1) { | |
| var queryStr = query.substr(1) | |
| var entry = queryStr.split('&') | |
| for (var i = 0; i < entry.length; i++) { | |
| var kv = entry[i].split('=') | |
| var key = kv[0] | |
| var value = kv[1]// maybe undefined |
| // Arrangement or Permutation | |
| int P(int n, int m) { | |
| int res = 1; | |
| int limit = n - m; | |
| while (n > limit) { | |
| res *= n--; | |
| } | |
| return res; | |
| } |
| public int rev(int x) { | |
| int res = 0; | |
| while (x > 0) { | |
| int mod = x % 10; | |
| x /= 10; | |
| res = res * 10 + mod; | |
| } | |
| return res; | |
| } |
| window.dynamic_import_javascript = function(url, text, type, frameWindow){ | |
| frameWindow = frameWindow || window | |
| var doc = frameWindow.document | |
| var container = frameWindow.document.head || frameWindow.document.body | |
| var newEle = doc.createElement('script') | |
| if (url) | |
| newEle.src = url | |
| if (text) | |
| newEle.appendChild(document.createTextNode(text)) | |
| newEle.type = type || 'text/javascript' |
一个ProxyGenerator实例代表一个代理类
ProxyGenerator实例中重要的属性
/** 保存所有接口的方法, key为方法签名, value中位不同返回值的同签名方法 */
Map<String, List<ProxyMethod>> proxyMethods;
/** 保存最终的字段信息, 每一个元素会生成一个实例字段 */
List<FieldInfo> fields;
/** 保存最终的方法信息, 每一个元素会生成一个实例方法 */