Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2013 Ning, Inc.
   *
   * Ning licenses this file to you under the Apache License, version 2.0
   * (the "License"); you may not use this file except in compliance with the
   * License.  You may obtain a copy of the License at:
   *
   *    http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
  * License for the specific language governing permissions and limitations
  * under the License.
  */
 
 package com.ning.billing.subscription.engine.addon;
 
 
 
 
 public class AddonUtils {
     private final CatalogService catalogService;
 
     @Inject
     public AddonUtils(final CatalogService catalogService) {
         this. = catalogService;
     }
 
     public void checkAddonCreationRights(final DefaultSubscriptionBase baseSubscriptionfinal Plan targetAddOnPlan)
             throws SubscriptionBaseApiExceptionCatalogApiException {
 
         if (baseSubscription.getState() != .) {
             throw new SubscriptionBaseApiException(.targetAddOnPlan.getName());
         }
 
         final Product baseProduct = baseSubscription.getCurrentPlan().getProduct();
         if (isAddonIncluded(baseProducttargetAddOnPlan)) {
                                                   targetAddOnPlan.getName(), baseSubscription.getCurrentPlan().getProduct().getName());
         }
 
         if (!isAddonAvailable(baseProducttargetAddOnPlan)) {
                                                   targetAddOnPlan.getName(), baseSubscription.getCurrentPlan().getProduct().getName());
         }
     }
 
     public boolean isAddonAvailableFromProdName(final String baseProductNamefinal DateTime requestedDatefinal Plan targetAddOnPlan) {
         try {
             final Product product = .getFullCatalog().findProduct(baseProductNamerequestedDate);
             return isAddonAvailable(producttargetAddOnPlan);
         } catch (CatalogApiException e) {
             throw new SubscriptionBaseError(e);
         }
     }
 
     public boolean isAddonAvailableFromPlanName(final String basePlanNamefinal DateTime requestedDatefinal Plan targetAddOnPlan) {
         try {
             final Plan plan = .getFullCatalog().findPlan(basePlanNamerequestedDate);
             final Product product = plan.getProduct();
             return isAddonAvailable(producttargetAddOnPlan);
         } catch (CatalogApiException e) {
             throw new SubscriptionBaseError(e);
         }
     }
 
     public boolean isAddonAvailable(final Product baseProductfinal Plan targetAddOnPlan) {
         final Product targetAddonProduct = targetAddOnPlan.getProduct();
         final Product[] availableAddOns = baseProduct.getAvailable();
 
         for (final Product curAv : availableAddOns) {
             if (curAv.getName().equals(targetAddonProduct.getName())) {
                 return true;
             }
         }
         return false;
     }
 
     public boolean isAddonIncludedFromProdName(final String baseProductNamefinal DateTime requestedDatefinal Plan targetAddOnPlan) {
         try {
             final Product product = .getFullCatalog().findProduct(baseProductNamerequestedDate);
             return isAddonIncluded(producttargetAddOnPlan);
         } catch (CatalogApiException e) {
             throw new SubscriptionBaseError(e);
         }
 
    }
    public boolean isAddonIncludedFromPlanName(final String basePlanNamefinal DateTime requestedDatefinal Plan targetAddOnPlan) {
        try {
            final Plan plan = .getFullCatalog().findPlan(basePlanNamerequestedDate);
            final Product product = plan.getProduct();
            return isAddonIncluded(producttargetAddOnPlan);
        } catch (CatalogApiException e) {
            throw new SubscriptionBaseError(e);
        }
    }
    public boolean isAddonIncluded(final Product baseProductfinal Plan targetAddOnPlan) {
        final Product targetAddonProduct = targetAddOnPlan.getProduct();
        final Product[] includedAddOns = baseProduct.getIncluded();
        for (final Product curAv : includedAddOns) {
            if (curAv.getName().equals(targetAddonProduct.getName())) {
                return true;
            }
        }
        return false;
    }
New to GrepCode? Check out our FAQ X