Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Sonatype Nexus (TM) Open Source Version
   * Copyright (c) 2008-2015 Sonatype, Inc.
   * All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
   *
   * This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
   * which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
   *
   * Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
  * of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
  * Eclipse Foundation. All other trademarks are the property of their respective owners.
  */
 package org.sonatype.nexus.plugins.capabilities.internal.condition;
 
 
 import  org.sonatype.sisu.goodies.eventbus.EventBus;
 
 import  com.google.common.eventbus.AllowConcurrentEvents;
 import  com.google.common.eventbus.Subscribe;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;

Support class for repository conditions.

Since:
capabilities 2.0
 
 public abstract class RepositoryConditionSupport
     extends ConditionSupport
     implements CapabilityContextAware
 {
 
 
 
   private final ReentrantReadWriteLock bindLock;
 
 
 
   public RepositoryConditionSupport(final EventBus eventBus,
                                     final RepositoryRegistry repositoryRegistry,
                                     final RepositoryConditions.RepositoryId repositoryId)
   {
     super(eventBusfalse);
     this. = checkNotNull(repositoryRegistry);
     this. = checkNotNull(repositoryId);
      = new ReentrantReadWriteLock();
   }
 
   @Override
   public RepositoryConditionSupport setContext(final CapabilityContext context) {
     checkState(!isActive(), "Cannot contextualize when already bounded");
     checkState( == null"Already contextualized with id '" +  + "'");
      = context.id();
 
     return this;
   }
 
   @Override
   protected void doBind() {
     try {
       .writeLock().lock();
       for (final Repository repository : .getRepositories()) {
         handle(new RepositoryRegistryEventAdd(repository));
       }
     }
     finally {
       .writeLock().unlock();
     }
     getEventBus().register(this);
   }
 
   @Override
   public void doRelease() {
     getEventBus().unregister(this);
   }
 
   public abstract void handle(final RepositoryRegistryEventAdd event);
 
   @Override
   protected void setSatisfied(final boolean satisfied) {
     try {
       .readLock().lock();
       super.setSatisfied(satisfied);
     }
    finally {
      .readLock().unlock();
    }
  }
  @AllowConcurrentEvents
  @Subscribe
  public void handle(final CapabilityEvent.BeforeUpdate event) {
    if (event.getReference().context().id().equals()) {
    }
  }
  @AllowConcurrentEvents
  @Subscribe
  public void handle(final CapabilityEvent.AfterUpdate event) {
    if (event.getReference().context().id().equals()) {
        try {
          .writeLock().lock();
          for (final Repository repository : .getRepositories()) {
            handle(new RepositoryRegistryEventAdd(repository));
          }
        }
        finally {
          .writeLock().unlock();
        }
      }
    }
  }

  
Checks that condition is about the passed in repository id.

Parameters:
repositoryId to check
Returns:
true, if condition repository matches the specified repository id
  protected boolean sameRepositoryAs(final String repositoryId) {
    return repositoryId != null && repositoryId.equals(getRepositoryId());
  }
  protected String getRepositoryId() {
    return .get();
  }
New to GrepCode? Check out our FAQ X