/** * 根据解析结果设置数据源与真实表名称 * * @param sqlStruct * @param sqlInfo * @throws SQLException */ private void parsePartition(SQLStruct sqlStruct, SQLInfo sqlInfo) throws SQLException { DALCustomInfo dalCustomInfo = DALCurrentStatus.getCustomInfo(); DALFactory dalFactory = DALFactory.getDefault(); ParsedTableInfo parsedTableInfo = new ParsedTableInfo(); boolean hasParser = true; if (sqlStruct.isCanParse()) { if (dalCustomInfo == null) { ConnectionStatus connectionStatus = new ConnectionStatus(); connectionStatus.setAutoCommit(this.dalConnection.getAutoCommit()); connectionStatus.setReadOnly(this.dalConnection.isReadOnly()); PartitionParser parser; PartitionTableInfo partitionTableInfo = null; for (String table : sqlStruct.getTableNames()) { parser = dalFactory.getPartitionParserFactory().getParser(table); if (parser == null) { hasParser = false; } else { // 存在解析器时,进行解析 partitionTableInfo = parser.parse(table, sqlInfo, connectionStatus); if (partitionTableInfo == null) { throw new DALRunTimeException( "partitionTableInfo return from " + parser.getClass().getName() + " can not be null : " + table); } parsedTableInfo.setRealTable(table, partitionTableInfo.getRealTable()); } } // 如果不需要解析路由,就设置默认数据源 if (partitionTableInfo == null) { // DALCurrentStatus.setDefaultDsKey(); } // 设置解析后的数据源 else { DALCurrentStatus.setDsKey(partitionTableInfo.getDsName()); } } // 通过代码指定数据源与表名称,进行设定 else { for (String table : sqlStruct.getTableNames()) { parsedTableInfo.setRealTable(table, dalCustomInfo.getRealTable(table)); } DALCurrentStatus.setDsKey(dalCustomInfo.getDsKey()); } // 在有进行解析的条件下,获得解析后指定表的sql语句 if (hasParser) { this.sql = dalFactory.getSqlAnalyzer().outPutSQL(sql, sqlStruct, sqlInfo, parsedTableInfo); } } else { // 当不需要进行解析时,什么也不做,直接使用上一次使用的解析结果 } }
public static ConnectionStatus getConnectionStatusStr(String value) { for (ConnectionStatus connectionStatus : ConnectionStatus.values()) { if (value.equals(connectionStatus.valueStr)) return connectionStatus; } return CONNECTION_FAILURE; }
public static synchronized void updateStateString( String state, String msg, int resid, ConnectionStatus level) { // Workound for OpenVPN doing AUTH and wait and being connected // Simply ignore these state if (mLastLevel == ConnectionStatus.LEVEL_CONNECTED && (state.equals("WAIT") || state.equals("AUTH"))) { newLogItem( new LogItem( (LogLevel.DEBUG), String.format( "Ignoring OpenVPN Status in CONNECTED state (%s->%s): %s", state, level.toString(), msg))); return; } mLaststate = state; mLaststatemsg = msg; mLastStateresid = resid; mLastLevel = level; for (StateListener sl : stateListener) { sl.updateState(state, msg, resid, level); } // newLogItem(new LogItem((LogLevel.DEBUG), String.format("New OpenVPN Status (%s->%s): // %s",state,level.toString(),msg))); }
public void verifyUser(FinishedCallback callback, ConnectionStatus connectionStatus) { if (connectionStatus != null && !connectionStatus.isOnline()) { if (callback != null) { callback.finished( new TwitterFetchResult(false, connectionStatus.getErrorMessageNoConnection()), null); } return; } mFinishedCallbackMap.put(mFetchUserCallbackHandle, callback); new FetchUserTask() .execute( AsyncTaskEx.PRIORITY_HIGH, "Validate User", new FetchUserTaskInput(mFetchUserCallbackHandle, connectionStatus)); mFetchUserCallbackHandle += 1; }
private void trigger(Long userId, FinishedCallback callback, ConnectionStatus connectionStatus) { if (connectionStatus != null && !connectionStatus.isOnline()) { if (callback != null) { callback.finished( new TwitterFetchResult(false, connectionStatus.getErrorMessageNoConnection()), null); } return; } assert (!mFinishedCallbackMap.containsValue(callback)); mFinishedCallbackMap.put(mFetchUserCallbackHandle, callback); new FetchUserTask() .execute( AsyncTaskEx.PRIORITY_HIGH, "Fetch User", new FetchUserTaskInput(userId, mFetchUserCallbackHandle, connectionStatus)); mFetchUserCallbackHandle += 1; }