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.events;
 
 import java.util.UUID;
 
 
 
 public abstract class EventBase implements SubscriptionBaseEvent {
 
     private final long totalOrdering;
     private final UUID uuid;
     private final UUID subscriptionId;
     private final DateTime createdDate;
     private final DateTime updatedDate;
     private final DateTime requestedDate;
     private final DateTime effectiveDate;
     private final DateTime processedDate;
 
     private long activeVersion;
     private boolean isActive;
 
     public EventBase(final EventBaseBuilder<?> builder) {
         this. = builder.getTotalOrdering();
         this. = builder.getUuid();
         this. = builder.getSubscriptionId();
         this. = builder.getCreatedDate();
         this. = builder.getUpdatedDate();
         this. = builder.getRequestedDate();
         this. = builder.getEffectiveDate();
         this. = builder.getProcessedDate();
         this. = builder.getActiveVersion();
         this. = builder.isActive();
     }
 
     @Override
     public DateTime getRequestedDate() {
         return ;
     }
 
     @Override
     public DateTime getEffectiveDate() {
         return ;
     }
 
     @Override
     public DateTime getProcessedDate() {
         return ;
     }
 
     @Override
     public UUID getSubscriptionId() {
         return ;
     }
 
     @Override
     public long getTotalOrdering() {
         return ;
     }
 
     @Override
     public UUID getId() {
         return ;
     }
 
     @Override
     public DateTime getCreatedDate() {
         return ;
     }
 
     @Override
     public DateTime getUpdatedDate() {
         return ;
     }
 
     @Override
     public long getActiveVersion() {
         return ;
     }
 
     @Override
     public void setActiveVersion(final long activeVersion) {
         this. = activeVersion;
    }
    @Override
    public boolean isActive() {
        return ;
    }
    @Override
    public void deactivate() {
        this. = false;
    }
    @Override
    public void reactivate() {
        this. = true;
    }
    //
    // Really used for unit tests only as the sql implementation relies on date first and then event insertion
    //
    // Order first by:
    // - effectiveDate, followed by processedDate, requestedDate
    // - if all dates are equal-- unlikely, we first return PHASE EVENTS
    // - If both events are User events, return the first CREATE, CHANGE,... as specified by ApiEventType
    // - If all that is not enough return consistent by random ordering based on UUID
    //
    @Override
    public int compareTo(final SubscriptionBaseEvent other) {
        if (other == null) {
            throw new IllegalArgumentException("IEvent is compared to a null instance");
        }
        if (.isBefore(other.getEffectiveDate())) {
            return -1;
        } else if (.isAfter(other.getEffectiveDate())) {
            return 1;
        } else if (.isBefore(other.getProcessedDate())) {
            return -1;
        } else if (.isAfter(other.getProcessedDate())) {
            return 1;
        } else if (.isBefore(other.getRequestedDate())) {
            return -1;
        } else if (.isAfter(other.getRequestedDate())) {
            return 1;
        } else if (getType() != other.getType()) {
            return (getType() == .) ? -1 : 1;
        } else if (getType() == .) {
            return ((ApiEventthis).getEventType().compareTo(((ApiEventother).getEventType());
        } else {
            return .compareTo(other.getId());
        }
    }
    @Override
    public boolean equals(final Object other) {
        if (!(other instanceof SubscriptionBaseEvent)) {
            return false;
        }
        return (this.compareTo((SubscriptionBaseEventother) == 0);
    }
    @Override
    public abstract EventType getType();
New to GrepCode? Check out our FAQ X