Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Sonatype Nexus (TM) Open Source Version
   * Copyright (c) 2007-2014 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.validator;
 
 import java.util.Map;
 
 import  javax.inject.Inject;
 import  javax.inject.Named;
 import  javax.inject.Provider;
 
 
 import  com.google.common.base.Predicate;
 import  com.google.inject.assistedinject.Assisted;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.sonatype.nexus.plugins.capabilities.support.CapabilityReferenceFilterBuilder.capabilities;

A Validator that ensures that only one capability of specified type and set of properties can be created.

Since:
capabilities 2.0
 
 @Named
 public class PrimaryKeyValidator
     extends ValidatorSupport
     implements Validator
 {
 
 
   private final CapabilityIdentity excludeId;
 
   private final String[] propertyKeys;
 
   @Inject
   PrimaryKeyValidator(final CapabilityRegistry capabilityRegistry,
                       final Provider<CapabilityDescriptorRegistrycapabilityDescriptorRegistryProvider,
                       final @Assisted CapabilityType type,
                       final @Assisted String... propertyKeys)
   {
     super(capabilityDescriptorRegistryProvidertype);
     this. = checkNotNull(capabilityRegistry);
     this. = null;
     this. = propertyKeys;
   }
 
   PrimaryKeyValidator(final CapabilityRegistry capabilityRegistry,
                       final Provider<CapabilityDescriptorRegistrycapabilityDescriptorRegistryProvider,
                       final CapabilityIdentity excludeId,
                       final CapabilityType type,
                       final String... propertyKeys)
   {
     super(capabilityDescriptorRegistryProvidertype);
     this. = checkNotNull(capabilityRegistry);
     this. = checkNotNull(excludeId);
     this. = propertyKeys;
   }
 
   @Override
   public ValidationResult validate(final Map<StringStringproperties) {
     final Collection<? extends CapabilityReferencereferences = .get(
         buildFilter(properties)
     );
     if (references == null
         || references.isEmpty()
         || (references.size() == 1 && references.iterator().next().context().id().equals())) {
       return .;
     }
     return new DefaultValidationResult().add(buildMessage(properties));
   }
 
   @Override
   public String explainValid() {
     final StringBuilder message = new StringBuilder()
         .append("Only one capability with type '").append(typeName()).append("'");
 
     if ( != null) {
       for (final String key : ) {
        message.append(", same ").append(propertyName(key).toLowerCase());
      }
    }
    message.append(" exists");
    return message.toString();
  }
  public String explainInvalid() {
    final StringBuilder message = new StringBuilder()
        .append("More then one capability with type '").append(typeName()).append("'");
    if ( != null) {
      for (final String key : ) {
        message.append(", same ").append(propertyName(key).toLowerCase());
      }
    }
    message.append(" exists");
    return message.toString();
  }
  private String buildMessage(final Map<StringStringproperties) {
    final StringBuilder message = new StringBuilder()
        .append("Only one capability of type '").append(typeName()).append("'");
    if (properties != null) {
      for (final String key : ) {
        message.append(", ").append(propertyName(key).toLowerCase()).append(" '")
            .append(properties.get(key)).append("'");
      }
    }
    message.append(" can be created");
    return message.toString();
  }
  private Predicate<CapabilityReferencebuildFilter(final Map<StringStringproperties) {
        capabilityType()
    );
    if ( != null) {
      for (final String key : ) {
        filter.withProperty(keyproperties.get(key));
      }
    }
    return filter;
  }
New to GrepCode? Check out our FAQ X