public class Identity
extends java.lang.Object
Entities can be identified by class (only has a class), instance (has both class and name), or group (only has a name).
Identities belong to a category, for grouping instruments into categories like 'actors' or 'dispatchers'. Expressed in plural form.
Identities have a key, used for tags.
Identities can be organised in hierarchies, where each identity can have a parent identity, for forming full identifier keys.
Identities can be hidden, where they are in the hierarchy but not used.
Identities can be marked as being 'unique', unique to this instance of Cinnamon, such as host name and application identifier.
| Modifier and Type | Class and Description |
|---|---|
static class |
Identity.Builder |
static class |
Identity.IdentityCache<T> |
| Modifier | Constructor and Description |
|---|---|
protected |
Identity(Identity.Builder builder) |
| Modifier and Type | Method and Description |
|---|---|
Identity.Builder |
builder()
Create a new identity builder, based on this identity.
|
protected Identity.Builder |
copyToBuilder(Identity.Builder builder) |
static Identity.Builder |
createFor(java.lang.String category,
java.lang.String key)
Create a new identity builder.
|
boolean |
equals(java.lang.Object o) |
java.lang.String |
getCategory()
The category for this identity (used for grouping, expressed in plural form).
|
java.lang.Class |
getEntityClass()
The entity class for this identity.
|
java.lang.String |
getEntityName()
The entity name for this identity (for instance or group identities).
|
java.lang.String |
getKey()
The key for this identity (used for tags).
|
java.lang.String |
getName()
Get the entity name (for instance or group) otherwise get the entity class name.
|
static <T> Identity.IdentityCache<T> |
getNewCache() |
Identity |
getParent()
The enclosing parent identity for this identity.
|
java.util.Map<java.lang.String,java.lang.String> |
getTags()
The tags for this identity.
|
boolean |
hasCategory()
Whether this identity has an associated category (used for grouping, expressed in plural form).
|
boolean |
hasEntityClass()
Whether this identity has an associated entity class.
|
boolean |
hasEntityName()
Whether this identity has an associated entity name (for instance or group identities).
|
int |
hashCode() |
boolean |
hasKey()
Whether this identity has an associated key (used for tags).
|
boolean |
hasName()
Whether this identity has an associated name (either entity name or entity class).
|
boolean |
hasParent()
Whether this identity has an enclosing parent identity.
|
boolean |
isDestroyable()
Whether instruments for this identity can be destroyed, once the entity for this identity has
terminated in some way.
|
boolean |
isUnique()
Whether this identity is unique to this instance of Cinnamon, such as host name or application
identifier.
|
boolean |
isVisible()
Whether this identity is visible, and should be included in metric keys or tags.
|
static Identity |
ofClass(java.lang.String category,
java.lang.String key,
java.lang.Class entityClass)
Create a new identity with class only, and no parent identity.
|
static Identity |
ofClass(java.lang.String category,
java.lang.String key,
java.lang.Class entityClass,
Identity parent)
Create a new identity with class only.
|
static Identity |
ofGroup(java.lang.String entityName)
Create a new identity with name only, and no category, key, or parent identity.
|
static Identity |
ofGroup(java.lang.String entityName,
Identity parent)
Create a new identity with name and parent only, no category or key.
|
static Identity |
ofGroup(java.lang.String category,
java.lang.String key,
java.lang.String entityName)
Create a new identity with name only, and no parent identity.
|
static Identity |
ofGroup(java.lang.String category,
java.lang.String key,
java.lang.String entityName,
Identity parent)
Create a new identity with name only.
|
static Identity |
ofInstance(java.lang.Class entityClass,
java.lang.String entityName)
Create a new identity with both class and name, and no category or parent identity.
|
static Identity |
ofInstance(java.lang.String category,
java.lang.String key,
java.lang.Class entityClass,
java.lang.String entityName)
Create a new identity with both class and name, and no parent identity.
|
static Identity |
ofInstance(java.lang.String category,
java.lang.String key,
java.lang.Class entityClass,
java.lang.String entityName,
Identity parent)
Create a new identity with both class and name.
|
static Identity |
ofTag(java.lang.String category,
java.lang.String key,
java.lang.String tag,
Identity parent)
Create a new identity with name only.
|
java.lang.String |
toString() |
public static Identity NONE
protected Identity(Identity.Builder builder)
public static Identity.Builder createFor(java.lang.String category, java.lang.String key)
category - category for entity (plural form)key - key for entity (used in tags)Identity.Builder to create identitypublic static Identity ofClass(java.lang.String category, java.lang.String key, java.lang.Class entityClass)
category - category for entity (plural form)key - key for entity (used in tags)entityClass - class for entitypublic static Identity ofClass(java.lang.String category, java.lang.String key, java.lang.Class entityClass, Identity parent)
category - category for entity (plural form)key - key for entity (used in tags)entityClass - class for entityparent - enclosing parent identitypublic static Identity ofInstance(java.lang.Class entityClass, java.lang.String entityName)
entityClass - class for entityentityName - instance name for entitypublic static Identity ofInstance(java.lang.String category, java.lang.String key, java.lang.Class entityClass, java.lang.String entityName)
category - category for entity (plural form)key - key for entity (used in tags)entityClass - class for entityentityName - instance name for entitypublic static Identity ofInstance(java.lang.String category, java.lang.String key, java.lang.Class entityClass, java.lang.String entityName, Identity parent)
category - category for entity (plural form)key - key for entity (used in tags)entityClass - class for entityentityName - instance name for entityparent - enclosing parent identitypublic static Identity ofGroup(java.lang.String entityName)
entityName - group name for entitypublic static Identity ofGroup(java.lang.String entityName, Identity parent)
entityName - group name for entityparent - enclosing parent identitypublic static Identity ofGroup(java.lang.String category, java.lang.String key, java.lang.String entityName)
category - category for entity (plural form)key - key for entity (used in tags)entityName - group name for entitypublic static Identity ofGroup(java.lang.String category, java.lang.String key, java.lang.String entityName, Identity parent)
category - category for entity (plural form)key - key for entity (used in tags)entityName - group name for entityparent - enclosing parent identitypublic static Identity ofTag(java.lang.String category, java.lang.String key, java.lang.String tag, Identity parent)
category - category for entity (plural form)key - key for entitytag - name of the groupparent - enclosing parent identitypublic boolean hasEntityClass()
boolean whether a class is specifiedpublic java.lang.Class getEntityClass()
Class for this identity, or null if not presentpublic boolean hasEntityName()
boolean whether a name is specifiedpublic java.lang.String getEntityName()
String name for this identity, or null if not presentpublic boolean hasName()
boolean whether a name is specifiedpublic java.lang.String getName()
String either the name or class name for this identitypublic boolean hasCategory()
boolean whether a category is specifiedpublic java.lang.String getCategory()
String category for this identity, or null if not presentpublic boolean hasKey()
boolean whether a key is specifiedpublic java.lang.String getKey()
String key for this identity, or null if not presentpublic java.util.Map<java.lang.String,java.lang.String> getTags()
Map<String, String> of tags.public boolean hasParent()
boolean whether parent identity is specifiedpublic Identity getParent()
Identity parent for this identity, or null if not presentpublic boolean isDestroyable()
Instance identities are destroyable, while class and group identities are assumed to be not destroyable given that other instances with the same identity could still continue to exist.
boolean whether this identity is destroyablepublic boolean isVisible()
boolean whether this identity is visiblepublic boolean isUnique()
boolean whether this identity is uniquepublic Identity.Builder builder()
protected Identity.Builder copyToBuilder(Identity.Builder builder)
public boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic static <T> Identity.IdentityCache<T> getNewCache()
Cinnamon API. Copyright (c) 2015–2021 Lightbend.