package com.cloudbees.jenkins; import javax.servlet.http.HttpServletRequest; import jenkins.scm.api.SCMEvent; /** * Encapsulates an event for {@link GitHubPushTrigger}. * * @since 1.26.0 */ public class GitHubTriggerEvent { /** * The timestamp of the event (or if unavailable when the event was received) */ private final long timestamp; /** * The origin of the event (see {@link SCMEvent#originOf(HttpServletRequest)}) */ private final String origin; /** * The user that the event was provided by. */ private final String triggeredByUser; private GitHubTriggerEvent(long timestamp, String origin, String triggeredByUser) { this.timestamp = timestamp; this.origin = origin; this.triggeredByUser = triggeredByUser; } public static Builder create() { return new Builder(); } public long getTimestamp() { return timestamp; } public String getOrigin() { return origin; } public String getTriggeredByUser() { return triggeredByUser; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } GitHubTriggerEvent that = (GitHubTriggerEvent) o; if (timestamp != that.timestamp) { return false; } if (origin != null ? !origin.equals(that.origin) : that.origin != null) { return false; } return triggeredByUser != null ? triggeredByUser.equals(that.triggeredByUser) : that.triggeredByUser == null; } @Override public int hashCode() { int result = (int) (timestamp ^ (timestamp >>> 32)); result = 31 * result + (origin != null ? origin.hashCode() : 0); result = 31 * result + (triggeredByUser != null ? triggeredByUser.hashCode() : 0); return result; } @Override public String toString() { return "GitHubTriggerEvent{" + "timestamp=" + timestamp + ", origin='" + origin + '\'' + ", triggeredByUser='" + triggeredByUser + '\'' + '}'; } /** * Builder for {@link GitHubTriggerEvent} instances.. */ public static class Builder { private long timestamp; private String origin; private String triggeredByUser; private Builder() { timestamp = System.currentTimeMillis(); } public Builder withTimestamp(long timestamp) { this.timestamp = timestamp; return this; } public Builder withOrigin(String origin) { this.origin = origin; return this; } public Builder withTriggeredByUser(String triggeredByUser) { this.triggeredByUser = triggeredByUser; return this; } public GitHubTriggerEvent build() { return new GitHubTriggerEvent(timestamp, origin, triggeredByUser); } @Override public String toString() { return "GitHubTriggerEvent.Builder{" + "timestamp=" + timestamp + ", origin='" + origin + '\'' + ", triggeredByUser='" + triggeredByUser + '\'' + '}'; } } }