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.api.user;
 
 
 
 
     private final Clock clock;
     private final Iterator<SubscriptionBaseTransitionit;
     private final Kind kind;
     private final TimeLimit timeLimit;
     private final Visibility visibility;
 
     private SubscriptionBaseTransition next;
 
     public enum Order {
         ASC_FROM_PAST,
         DESC_FROM_FUTURE
     }
 
     public enum Kind {
         SUBSCRIPTION,
         BILLING,
         ALL
     }
 
     public enum TimeLimit {
         FUTURE_ONLY,
         PAST_OR_PRESENT_ONLY,
         ALL
     }
 
     public enum Visibility {
         FROM_DISK_ONLY,
         ALL
     }
 
     public SubscriptionBaseTransitionDataIterator(final Clock clockfinal LinkedList<SubscriptionBaseTransitiontransitions,
                                                   final Order orderfinal Kind kindfinal Visibility visibilityfinal TimeLimit timeLimit) {
         this. = (order == .) ? transitions.descendingIterator() : transitions.iterator();
         this. = clock;
         this. = kind;
         this. = timeLimit;
         this. = visibility;
         this. = null;
     }
 
     @Override
     public boolean hasNext() {
         do {
             final boolean hasNext = .hasNext();
             if (!hasNext) {
                 return false;
             }
              = .next();
         } while (shouldSkip());
         return true;
     }
 
     private boolean shouldSkip(final SubscriptionBaseTransition input) {
         if ( == . && ! ((SubscriptionBaseTransitionDatainput).isFromDisk()) {
             return true;
         }
             ( == . && shouldSkipForBillingEvents((SubscriptionBaseTransitionDatainput))) {
             return true;
         }
         if (( == . && !input.getEffectiveTransitionTime().isAfter(.getUTCNow())) ||
                 (( == . && input.getEffectiveTransitionTime().isAfter(.getUTCNow())))) {
             return true;
         }
         return false;
     }
 
     private boolean shouldSkipForSubscriptionEvents(final SubscriptionBaseTransitionData input) {
         // SubscriptionBase system knows about all events except for MIGRATE_BILLING
         return (input.getTransitionType() == .);
     }
 
    private boolean shouldSkipForBillingEvents(final SubscriptionBaseTransitionData input) {
        // Junction system knows about all events except for MIGRATE_ENTITLEMENT
    }
    @Override
    public SubscriptionBaseTransition next() {
        return ;
    }
    @Override
    public void remove() {
        throw new SubscriptionBaseError("Operation SubscriptionBaseTransitionDataIterator.remove not implemented");
    }
New to GrepCode? Check out our FAQ X