/* * Copyright 2014-2016 Groupon, Inc * Copyright 2014-2016 The Billing Project, LLC * * The Billing Project 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 org.killbill.billing.server.notifications; import java.util.UUID; import org.killbill.notificationq.api.NotificationEvent; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class PushNotificationKey implements NotificationEvent { private final UUID tenantId; private final UUID accountId; private final String eventType; private final String objectType; private final UUID objectId; private final int attemptNumber; private final String url; @JsonCreator public PushNotificationKey(@JsonProperty("tenantId") final UUID tenantId, @JsonProperty("accountId") final UUID accountId, @JsonProperty("eventType") final String eventType, @JsonProperty("objectType") final String objectType, @JsonProperty("objectId") final UUID objectId, @JsonProperty("attemptNumber") final int attemptNumber, @JsonProperty("url") final String url) { this.tenantId = tenantId; this.accountId = accountId; this.eventType = eventType; this.objectType = objectType; this.objectId = objectId; this.attemptNumber = attemptNumber; this.url = url; } public PushNotificationKey(final PushNotificationKey key, final int attemptNumber) { this(key.getTenantId(), key.getAccountId(), key.getEventType(), key.getObjectType(), key.getObjectId(), attemptNumber, key.getUrl()); } public UUID getTenantId() { return tenantId; } public UUID getAccountId() { return accountId; } public String getEventType() { return eventType; } public String getObjectType() { return objectType; } public UUID getObjectId() { return objectId; } public Integer getAttemptNumber() { return attemptNumber; } public String getUrl() { return url; } @Override public String toString() { return "PushNotificationKey{" + "tenantId=" + tenantId + ", accountId=" + accountId + ", eventType='" + eventType + '\'' + ", objectType='" + objectType + '\'' + ", objectId=" + objectId + ", attemptNumber=" + attemptNumber + ", url='" + url + '\'' + '}'; } }