Example #1
0
 @Override
 public void registerAction(Action action) throws ActionConflictException {
   for (Artifact artifact : action.getOutputs()) {
     Action previousAction = generatingActionMap.putAndGet(artifact, action);
     if (previousAction != null
         && previousAction != action
         && !Actions.canBeShared(action, previousAction)) {
       generatingActionMap.remove(artifact, action);
       throw new ActionConflictException(artifact, previousAction, action);
     }
   }
 }
Example #2
0
 @Override
 public void unregisterAction(Action action) {
   for (Artifact artifact : action.getOutputs()) {
     generatingActionMap.remove(artifact, action);
     Action otherAction = generatingActionMap.get(artifact);
     Preconditions.checkState(
         otherAction == null
             || (otherAction != action && Actions.canBeShared(action, otherAction)),
         "%s %s",
         action,
         otherAction);
   }
 }
Example #3
0
 @Override
 public void clear() {
   generatingActionMap.clear();
 }
Example #4
0
 @Override
 @Nullable
 public Action getGeneratingAction(Artifact artifact) {
   return generatingActionMap.get(artifact);
 }