// only refresh might have changed; for branches/roots change, another method is used public MergeCheckResult getState( final WCInfoWithBranches info, final SvnChangeList list, final WCInfoWithBranches.Branch selectedBranch, final String branchPath) { final String currentUrl = info.getRootUrl(); final String branchUrl = selectedBranch.getUrl(); MyCurrentUrlData rootMapping = myState.getCurrentUrlMapping().get(currentUrl); BranchInfo mergeChecker = null; if (rootMapping == null) { rootMapping = new MyCurrentUrlData(); myState.getCurrentUrlMapping().put(currentUrl, rootMapping); } else { mergeChecker = rootMapping.getBranchInfo(branchPath); } if (mergeChecker == null) { mergeChecker = new BranchInfo( SvnVcs.getInstance(myProject), info.getRepoUrl(), branchUrl, currentUrl, info.getTrunkRoot()); rootMapping.addBranchInfo(branchPath, mergeChecker); } return mergeChecker.checkList(list, branchPath); }
private void doAction(final MyAction action) { LOG.debug("doAction: START " + action.name()); final MyExitAction[] exitActions; List<Runnable> toBeCalled = null; synchronized (myLock) { final MyState oldState = myState; myState = myState.transition(action); if (oldState.equals(myState)) return; exitActions = MyTransitionAction.getExit(oldState, myState); LOG.debug("doAction: oldState: " + oldState.name() + ", newState: " + myState.name()); if (LOG.isDebugEnabled() && exitActions != null) { final String debugExitActions = StringUtil.join( exitActions, new Function<MyExitAction, String>() { @Override public String fun(MyExitAction exitAction) { return exitAction.name(); } }, " "); LOG.debug("exit actions: " + debugExitActions); } if (exitActions != null) { for (MyExitAction exitAction : exitActions) { if (MyExitAction.markStart.equals(exitAction)) { myWaitingFinishListeners.addAll(myWaitingStartListeners); myWaitingStartListeners.clear(); } else if (MyExitAction.markEnd.equals(exitAction)) { toBeCalled = new ArrayList<Runnable>(myWaitingFinishListeners); myWaitingFinishListeners.clear(); } } } } if (exitActions != null) { for (MyExitAction exitAction : exitActions) { if (MyExitAction.submitRequestToExecutor.equals(exitAction)) { myAlarm.consume(myWorker); // myAlarm.addRequest(myWorker, ourDelay); // ApplicationManager.getApplication().executeOnPooledThread(myWorker); } } } if (toBeCalled != null) { for (Runnable runnable : toBeCalled) { runnable.run(); } } LOG.debug("doAction: END " + action.name()); }
public void clear(final WCPaths info, final String branchPath) { final String currentUrl = info.getRootUrl(); final MyCurrentUrlData rootMapping = myState.getCurrentUrlMapping().get(currentUrl); if (rootMapping != null) { final BranchInfo mergeChecker = rootMapping.getBranchInfo(branchPath); if (mergeChecker != null) { mergeChecker.clear(); } } }
public boolean isMixedRevisions(final WCInfoWithBranches info, final String branchPath) { final String currentUrl = info.getRootUrl(); final MyCurrentUrlData rootMapping = myState.getCurrentUrlMapping().get(currentUrl); if (rootMapping != null) { final BranchInfo branchInfo = rootMapping.getBranchInfo(branchPath); if (branchInfo != null) { return branchInfo.isMixedRevisionsFound(); } } return false; }
@Nullable public MergeinfoCached getCachedState(final WCPaths info, final String branchPath) { final String currentUrl = info.getRootUrl(); MyCurrentUrlData rootMapping = myState.getCurrentUrlMapping().get(currentUrl); if (rootMapping != null) { final BranchInfo branchInfo = rootMapping.getBranchInfo(branchPath); if (branchInfo != null) { return branchInfo.getCached(); } } return null; }
private static void logWrongAction(final MyState state, final MyAction action) { LOG.info("Wrong action: state=" + state.name() + ", action=" + action.name()); }