All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ebay.jetstream.event.JetstreamReservedKeys Maven / Gradle / Ivy

/*******************************************************************************
 *  Copyright © 2012-2015 eBay Software Foundation
 *  This program is dual licensed under the MIT and Apache 2.0 licenses.
 *  Please see LICENSE for more information.
 *******************************************************************************/
package com.ebay.jetstream.event;

import java.util.HashSet;
import java.util.Set;

/**
 * The JetstreamReservedKeys enum defines the event keys that are reserved and interpreted by the Jetstream eventlet
 * framework. Adapted from Jetstream
 * 
 * @author [email protected]
 * 
 */
public enum JetstreamReservedKeys {
	/**
	 * The event id key defines the reserved key used to represent event id for access within the map. This key represents
	 * a read-only value in the map.
	 */
	EventId("js_ev_id"),

	/**
	 * The event type defines the category of this an event.
	 */
	EventType("js_ev_type"),

	/**
	 * the rate at which the event should be processed by EventProcessor.
	 */
	EventRate("js_ev_rate"),
	/**
	 * The event type defines the category of this an event.
	 */
	WorkerId("js_ev_wid"),

	/**
	 * The event time defines the time the event arrived at Router
	 */
	EventTime("js_ev_time"),

	/**
	 * The event time defines the time the event arrived at Cerulean (RES Sync layer).
	 */
	CallingPlatform("js_ev_src"),

	/**
	 * Holds the Message affinity key - This should be present in the outermost Map in the JetstreamEvent Structure.
	 * Intended to be used to Signal the messaging stack to use this value to compute the split to which the associated
	 * message is to be forwarded to.
	 */

	MessageAffinityKey("js_ev_mak"),

	/**
	 * Holds the respective guid value for a given scope (source, destination or link)
	 */
	GuidKey("js_guid"),

	/**
	 * Holds the cause for which the event was tagged invalid
	 */
	Invalid("INVALID_EVENT"),

	EventOrigin("js_ev_orgn"),

	JetstreamEventHolder("js_ev_evholder"),

	EventSource("js_ev_src"),

	EventBatch("js_ev_batch"),


	/**
	 * Used in SFS for storing the events
	 */
	EventIndex("js_ev_ndx"),

	RetryCount("js_erc"),
	/**
	 * Used in SFS to persist the timestamp at which the event was written
	 */
	EventWriteTime("js_ev_ev_write_time"),
	
	EventMetaData("js_ev_metadata"),
	
	EventReplayTopic("js_rplytpc"),
	
	EventReplay("js_rply"), 
	
	EventBroadCast("js_bc"),
	
	AbusiveEntity("js_ae"),
	
	EventKafkaMeta("js_km");

	private final String m_key;
	private volatile static Set RESERVED_STRINGS;

	private JetstreamReservedKeys(String key) {
		m_key = key;
		store(key);
	}

	@Override
	public String toString() {
		return m_key;
	}

	public static boolean isReserved(String strKey) {
		return RESERVED_STRINGS.contains(strKey.toLowerCase());
	}

	private void store(String strKey) {
		if (RESERVED_STRINGS == null) {
			synchronized(JetstreamReservedKeys.class) {
				if (RESERVED_STRINGS == null)
					RESERVED_STRINGS = new HashSet();
			}
		}
		RESERVED_STRINGS.add(strKey.toLowerCase());
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy