public abstract class AbstractEntity extends AbstractBrooklynObject implements EntityLocal, EntityInternal
Entity
implementation, which should be extended whenever implementing an entity.
Provides several common fields (displayName
, AbstractBrooklynObject.id
), and supports the core features of
an entity such as configuration keys, attributes, subscriptions and effector invocation.
If a sub-class is creating other entities, this should be done in an overridden init()
method.
Note that config is typically inherited by children, whereas the fields and attributes are not.
Though currently Groovy code, this is very likely to change to pure Java in a future release of Brooklyn so Groovy'isms should not be relied on.
Sub-classes should have a no-argument constructor. When brooklyn creates an entity, it will:
setDisplayName(String)
setManagementContext(ManagementContextInternal)
setProxy(Entity)
; the proxy should be used by everything else when referring
to this entity (except for drivers/policies that are attached to the entity, which can be
given a reference to this entity itself).
configure(Map)
and then setConfig(ConfigKey, Object)
init()
addPolicy(Policy)
(for any policies defined in the EntitySpec
)
setParent(Entity)
, if a parent is specified in the EntitySpec
The legacy (pre 0.5) mechanism for creating entities is for others to call the constructor directly. This is now deprecated.
EntityInternal.FeedSupport
BrooklynObjectInternal.ConfigurationSupportInternal
BrooklynObject.TagSupport
Configurable.ConfigurationSupport
Modifier and Type | Field and Description |
---|---|
static BasicNotificationSensor<Entity> |
CHILD_ADDED |
static BasicNotificationSensor<Entity> |
CHILD_REMOVED |
static BasicNotificationSensor<java.lang.String> |
EFFECTOR_ADDED |
static BasicNotificationSensor<java.lang.String> |
EFFECTOR_CHANGED |
static BasicNotificationSensor<java.lang.String> |
EFFECTOR_REMOVED |
static BasicNotificationSensor<Location> |
LOCATION_ADDED |
static BasicNotificationSensor<Location> |
LOCATION_REMOVED |
static BasicNotificationSensor<PolicyDescriptor> |
POLICY_ADDED |
static BasicNotificationSensor<PolicyDescriptor> |
POLICY_REMOVED |
static BasicNotificationSensor<Sensor> |
SENSOR_ADDED |
static BasicNotificationSensor<Sensor> |
SENSOR_REMOVED |
Constructor and Description |
---|
AbstractEntity() |
AbstractEntity(Entity parent)
Deprecated.
since 0.5; instead use no-arg constructor with EntityManager().createEntity(spec)
|
AbstractEntity(java.util.Map flags)
Deprecated.
since 0.5; instead use no-arg constructor with EntityManager().createEntity(spec)
|
AbstractEntity(java.util.Map flags,
Entity parent)
Deprecated.
since 0.5; instead use no-arg constructor with EntityManager().createEntity(spec)
|
Modifier and Type | Method and Description |
---|---|
<T extends Entity> |
addChild(EntitySpec<T> spec)
Creates an entity using the given spec, and adds it as a child of this entity.
|
<T extends Entity> |
addChild(T child)
Adds the given entity as a child of this parent and sets this entity as the parent of the child;
returns argument passed in, for convenience.
|
void |
addEnricher(Enricher enricher)
Adds the given enricher to this entity.
|
<T extends Enricher> |
addEnricher(EnricherSpec<T> spec)
Adds the given enricher to this entity.
|
<T extends Feed> |
addFeed(T feed)
Convenience, which calls
EntityInternal.feeds() and FeedSupport#addFeed(Feed) . |
void |
addGroup(Group e)
Add this entity as a member of the given
Group . |
void |
addLocations(java.util.Collection<? extends Location> newLocations) |
void |
addPolicy(Policy policy)
Adds the given policy to this entity.
|
<T extends Policy> |
addPolicy(PolicySpec<T> spec)
Adds the given policy to this entity.
|
boolean |
addTag(java.lang.Object tag) |
void |
clearLocations() |
void |
clearParent()
Clears the parent (i.e.
|
brooklyn.entity.basic.AbstractEntity.BasicConfigurationSupport |
config() |
<T> AbstractEntity |
configure(ConfigKey.HasConfigKey<T> key,
java.lang.String value)
Deprecated.
since 0.7.0; see
config() , such as config().set(key, value) |
<T> AbstractEntity |
configure(ConfigKey.HasConfigKey<T> key,
T value)
Deprecated.
since 0.7.0; see
config() , such as config().set(key, value) |
<T> AbstractEntity |
configure(ConfigKey<T> key,
java.lang.String value)
Deprecated.
since 0.7.0; see
config() , such as config().set(key, value) |
<T> AbstractEntity |
configure(ConfigKey<T> key,
T value)
Deprecated.
since 0.7.0; see
config() , such as config().set(key, value) |
AbstractEntity |
configure(java.util.Map flags)
Deprecated.
since 0.7.0; only used for legacy brooklyn types where constructor is called directly
|
boolean |
containsTag(java.lang.Object tag) |
void |
destroy()
Should be invoked at end-of-life to clean up the item.
|
<T> void |
emit(Sensor<T> sensor,
T val)
Emits a
SensorEvent event on behalf of this entity (as though produced by this entity). |
<T> void |
emitInternal(Sensor<T> sensor,
T val) |
boolean |
equals(java.lang.Object o) |
EntityInternal.FeedSupport |
feeds() |
Location |
firstLocation() |
java.util.Map<AttributeSensor,java.lang.Object> |
getAllAttributes() |
java.util.Map<ConfigKey<?>,java.lang.Object> |
getAllConfig()
Deprecated.
|
ConfigBag |
getAllConfigBag()
Deprecated.
|
Application |
getApplication()
Returns the application, looking it up if not yet known (registering if necessary)
|
java.lang.String |
getApplicationId() |
<T> T |
getAttribute(AttributeSensor<T> attribute)
Gets the value of the given attribute on this entity, or null if has not been set.
|
<T> T |
getAttributeByNameParts(java.util.List<java.lang.String> nameParts) |
java.util.Collection<Entity> |
getChildren()
Return the entities that are children of (i.e.
|
<T> T |
getConfig(ConfigKey.HasConfigKey<T> key) |
<T> T |
getConfig(ConfigKey.HasConfigKey<T> key,
T defaultValue)
Deprecated.
|
<T> T |
getConfig(ConfigKey<T> key)
Convenience for calling
ConfigurationSupport#getConfig(ConfigKey) ,
via code like config().get(key) . |
<T> T |
getConfig(ConfigKey<T> key,
T defaultValue)
Deprecated.
|
EntityConfigMap |
getConfigMap()
Deprecated.
|
Maybe<java.lang.Object> |
getConfigRaw(ConfigKey.HasConfigKey<?> key,
boolean includeInherited)
Deprecated.
|
Maybe<java.lang.Object> |
getConfigRaw(ConfigKey<?> key,
boolean includeInherited)
Deprecated.
|
long |
getCreationTime()
Returns the creation time for this entity, in UTC.
|
java.lang.String |
getDisplayName()
A display name; recommended to be a concise single-line description.
|
Effector<?> |
getEffector(java.lang.String effectorName)
Convenience for finding named effector in
EntityType.getEffectors() Map . |
java.util.Collection<Enricher> |
getEnrichers() |
EntityType |
getEntityType()
Information about the type of this entity; analogous to Java's object.getClass.
|
ExecutionContext |
getExecutionContext()
Returns the task execution context for the entity.
|
EntityInternal.FeedSupport |
getFeedSupport()
Deprecated.
|
java.util.Collection<Group> |
getGroups()
The
Collection of Group s that this entity is a member of. |
java.lang.String |
getIconUrl()
A URL pointing to an image which can be used to represent this entity.
|
ConfigBag |
getLocalConfigBag()
Deprecated.
|
java.util.Collection<Location> |
getLocations()
Return all the
Location s this entity is deployed to. |
ManagementContext |
getManagementContext()
Returns the management context for the entity.
|
EntityManagementSupport |
getManagementSupport() |
EntityDynamicType |
getMutableEntityType()
returns the dynamic type corresponding to the type of this entity instance
|
Entity |
getParent()
The parent of this entity, null if no parent.
|
java.util.Collection<Policy> |
getPolicies() |
Entity |
getProxy() |
Entity |
getProxyIfAvailable()
Returns the proxy, or if not available (because using legacy code) then returns the real entity.
|
RebindSupport<EntityMemento> |
getRebindSupport()
As described in
EntityInternal.getRebindSupport() ... |
SubscriptionContext |
getSubscriptionContext() |
java.util.Set<java.lang.Object> |
getTags() |
int |
hashCode() |
void |
init()
Default entity initialization, just calls
initEnrichers() . |
void |
invalidateReferences()
For use by management plane, to invalidate all fields (e.g.
|
<T> Task<T> |
invoke(Effector<T> eff)
Invoke an
Effector directly. |
<T> Task<T> |
invoke(Effector<T> eff,
java.util.Map<java.lang.String,?> parameters)
Additional form supplied for when the parameter map needs to be made explicit.
|
<T> Task<T> |
invoke(java.util.Map parameters,
Effector<T> eff) |
<T> T |
modifyAttribute(AttributeSensor<T> attribute,
com.google.common.base.Function<? super T,Maybe<T>> modifier)
Atomically modifies the
AttributeSensor , ensuring that only one modification is done
at a time. |
void |
onManagementBecomingMaster()
Deprecated.
since 0.4.0 override EntityManagementSupport.onManagementStarted if customization needed
|
void |
onManagementNoLongerMaster()
Deprecated.
since 0.4.0 override EntityManagementSupport.onManagementStopped if customization needed
|
void |
onManagementStarted()
Invoked by
EntityManagementSupport when this entity is fully managed and visible to other entities
through the management context. |
void |
onManagementStarting()
Invoked by
EntityManagementSupport when this entity is becoming managed (i.e. |
void |
onManagementStopped()
Invoked by
EntityManagementSupport when this entity is fully unmanaged. |
void |
refreshInheritedConfig()
Deprecated.
since 0.7.0; see
config().refreshInheritedConfig() |
boolean |
removeAllEnrichers()
Removes all enricher from this entity.
|
boolean |
removeAllPolicies()
Removes all policy from this entity.
|
void |
removeAttribute(AttributeSensor<?> attribute) |
boolean |
removeChild(Entity child)
Removes the specified child
Entity ; its parent will be set to null. |
boolean |
removeEnricher(Enricher enricher)
Removes the given enricher from this entity.
|
void |
removeGroup(Group e)
Removes this entity as a member of the given
Group . |
void |
removeLocations(java.util.Collection<? extends Location> removedLocations) |
boolean |
removePolicy(Policy policy)
Removes the given policy from this entity.
|
boolean |
removeTag(java.lang.Object tag) |
void |
requestPersist()
Can be called to request that the entity be persisted.
|
void |
resetProxy(Entity proxy)
internal use only
|
<T> T |
setAttribute(AttributeSensor<T> attribute,
T val)
Sets the
AttributeSensor data for the given attribute to the specified value. |
<T> T |
setAttribute(AttributeSensorAndConfigKey<?,T> configuredSensor)
Deprecated.
on interface since 0.5.0; use
ConfigToAttributes.apply(EntityLocal, AttributeSensorAndConfigKey) |
<T> T |
setAttributeWithoutPublishing(AttributeSensor<T> attribute,
T val)
Like
EntityLocal.setAttribute(AttributeSensor, Object) , except does not publish an attribute-change event. |
<T> T |
setConfig(ConfigKey.HasConfigKey<T> key,
DeferredSupplier val)
Deprecated.
|
<T> T |
setConfig(ConfigKey.HasConfigKey<T> key,
T val)
Deprecated.
|
<T> T |
setConfig(ConfigKey.HasConfigKey<T> key,
Task<T> val)
Deprecated.
|
<T> T |
setConfig(ConfigKey<T> key,
DeferredSupplier val)
Deprecated.
|
<T> T |
setConfig(ConfigKey<T> key,
T val)
Deprecated.
|
<T> T |
setConfig(ConfigKey<T> key,
Task<T> val)
Deprecated.
|
<T> T |
setConfigEvenIfOwned(ConfigKey.HasConfigKey<T> key,
T val) |
<T> T |
setConfigEvenIfOwned(ConfigKey<T> key,
T val) |
void |
setDisplayName(java.lang.String newDisplayName)
Sets the entity's display name.
|
void |
setManagementContext(ManagementContextInternal managementContext) |
AbstractEntity |
setParent(Entity entity)
Adds this as a child of the given entity; registers with application if necessary.
|
void |
setProxy(Entity proxy)
internal use only
|
<T> SubscriptionHandle |
subscribe(Entity producer,
Sensor<T> sensor,
SensorEventListener<? super T> listener)
Allow us to subscribe to data from a
Sensor on another entity. |
<T> SubscriptionHandle |
subscribeToChildren(Entity parent,
Sensor<T> sensor,
SensorEventListener<? super T> listener) |
<T> SubscriptionHandle |
subscribeToMembers(Group group,
Sensor<T> sensor,
SensorEventListener<? super T> listener) |
java.util.Map<java.lang.String,java.lang.String> |
toMetadataRecord() |
java.lang.String |
toString()
Default String representation is simplified name of class, together with selected fields.
|
boolean |
unsubscribe(Entity producer)
Unsubscribes the given producer.
|
boolean |
unsubscribe(Entity producer,
SubscriptionHandle handle)
Unsubscribes the given handle.
|
getCatalogItemId, getId, getTagSupport, rebind, setCatalogItemId, tags
setCatalogItemId
getCatalogItemId, getTagSupport, tags
public static final BasicNotificationSensor<Location> LOCATION_ADDED
public static final BasicNotificationSensor<Location> LOCATION_REMOVED
public static final BasicNotificationSensor<Sensor> SENSOR_ADDED
public static final BasicNotificationSensor<Sensor> SENSOR_REMOVED
public static final BasicNotificationSensor<java.lang.String> EFFECTOR_ADDED
public static final BasicNotificationSensor<java.lang.String> EFFECTOR_REMOVED
public static final BasicNotificationSensor<java.lang.String> EFFECTOR_CHANGED
public static final BasicNotificationSensor<PolicyDescriptor> POLICY_ADDED
public static final BasicNotificationSensor<PolicyDescriptor> POLICY_REMOVED
public static final BasicNotificationSensor<Entity> CHILD_ADDED
public static final BasicNotificationSensor<Entity> CHILD_REMOVED
public AbstractEntity()
@Deprecated public AbstractEntity(java.util.Map flags)
@Deprecated public AbstractEntity(Entity parent)
@Deprecated public AbstractEntity(java.util.Map flags, Entity parent)
@Deprecated public AbstractEntity configure(java.util.Map flags)
AbstractBrooklynObject
ConfigBag.getUnusedConfig()
.
To be overridden by AbstractEntity, AbstractLoation, AbstractPolicy, AbstractEnricher, etc.
But should not be overridden by specific entity types. If you do, the entity may break in subsequent releases. Also note that if you require fields to be initialized you must do that in this method. You must *not* rely on field initializers because they may not run until *after* this method (this method is invoked by the constructor in this class, so initializers in subclasses will not have run when this overridden method is invoked.)
configure
in interface EntityInternal
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
@Beta public void setProxy(Entity proxy)
@Beta public void resetProxy(Entity proxy)
public Entity getProxy()
@Beta public Entity getProxyIfAvailable()
@Deprecated public <T> AbstractEntity configure(ConfigKey<T> key, T value)
@Deprecated public <T> AbstractEntity configure(ConfigKey<T> key, java.lang.String value)
@Deprecated public <T> AbstractEntity configure(ConfigKey.HasConfigKey<T> key, T value)
@Deprecated public <T> AbstractEntity configure(ConfigKey.HasConfigKey<T> key, java.lang.String value)
public void setManagementContext(ManagementContextInternal managementContext)
setManagementContext
in class AbstractBrooklynObject
public java.util.Map<java.lang.String,java.lang.String> toMetadataRecord()
toMetadataRecord
in interface EntityInternal
public long getCreationTime()
Entity
getCreationTime
in interface Entity
public java.lang.String getDisplayName()
Entity
getDisplayName
in interface BrooklynObject
getDisplayName
in interface Entity
public java.lang.String getIconUrl()
Entity
getIconUrl
in interface Entity
public void setDisplayName(java.lang.String newDisplayName)
EntityLocal
setDisplayName
in interface EntityLocal
setDisplayName
in class AbstractBrooklynObject
public AbstractEntity setParent(Entity entity)
setParent
in interface Entity
Entity.getParent()
,
Entity.clearParent()
public void clearParent()
Entity
clearParent
in interface Entity
Entity.getParent()
,
Entity.setParent(brooklyn.entity.Entity)
public <T extends Entity> T addChild(T child)
The child is NOT managed, even if the parent is already managed at this point
(e.g. the child is added *after* the parent's init()
is invoked)
and so will need an explicit getEntityManager().manage(childReturnedFromThis)
call.
These semantics are currently under review.
public <T extends Entity> T addChild(EntitySpec<T> spec)
addChild
in interface Entity
java.lang.IllegalArgumentException
- If spec.getParent()
is set and is different from this entityaddChild(Entity)
,
EntityManager.createEntity(EntitySpec)
public boolean removeChild(Entity child)
Entity
Entity
; its parent will be set to null.removeChild
in interface Entity
public void addGroup(Group e)
Entity
Group
. Called by framework.
Users should call Group.addMember(Entity)
instead; this method will then
automatically be called. However, the reverse is not true (calling this method will
not tell the group; this behaviour may change in a future release!)
public void removeGroup(Group e)
Entity
Group
. Called by framework.
Users should call Group.removeMember(Entity)
instead; this method will then
automatically be called. However, the reverse is not true (calling this method will
not tell the group; this behaviour may change in a future release!)
removeGroup
in interface Entity
public Entity getParent()
Entity
getParent
in interface Entity
Entity.setParent(Entity)
,
Entity.clearParent()
public java.util.Collection<Entity> getChildren()
Entity
getChildren
in interface Entity
public java.util.Collection<Group> getGroups()
Entity
Collection
of Group
s that this entity is a member of.
Groupings can be used to allow easy management/monitoring of a group of entities.public Application getApplication()
getApplication
in interface Entity
Application
this entity is registered with, or null if not registered.public java.lang.String getApplicationId()
getApplicationId
in interface Entity
Application
this entity is registered with, or null if not registered.public ManagementContext getManagementContext()
EntityInternal
getManagementContext
in interface EntityInternal
getManagementContext
in class AbstractBrooklynObject
public EntityType getEntityType()
Entity
getEntityType
in interface Entity
public EntityDynamicType getMutableEntityType()
EntityInternal
getMutableEntityType
in interface EntityInternal
public java.util.Collection<Location> getLocations()
Entity
Location
s this entity is deployed to.getLocations
in interface Entity
public void addLocations(java.util.Collection<? extends Location> newLocations)
addLocations
in interface EntityInternal
public void removeLocations(java.util.Collection<? extends Location> removedLocations)
removeLocations
in interface EntityInternal
public void clearLocations()
clearLocations
in interface EntityInternal
public Location firstLocation()
public void destroy()
destroy
in interface EntityInternal
public <T> T getAttribute(AttributeSensor<T> attribute)
Entity
getAttribute
in interface Entity
public <T> T getAttributeByNameParts(java.util.List<java.lang.String> nameParts)
public <T> T setAttribute(AttributeSensor<T> attribute, T val)
EntityLocal
AttributeSensor
data for the given attribute to the specified value.
This can be used to "enrich" the entity, such as adding aggregated information,
rolling averages, etc.setAttribute
in interface EntityLocal
null
)public <T> T setAttributeWithoutPublishing(AttributeSensor<T> attribute, T val)
EntityInternal
EntityLocal.setAttribute(AttributeSensor, Object)
, except does not publish an attribute-change event.setAttributeWithoutPublishing
in interface EntityInternal
@Beta public <T> T modifyAttribute(AttributeSensor<T> attribute, com.google.common.base.Function<? super T,Maybe<T>> modifier)
EntityLocal
AttributeSensor
, ensuring that only one modification is done
at a time.
If the modifier returns Maybe.absent()
then the attribute will be
left unmodified, and the existing value will be returned.
For details of the synchronization model used to achieve this, refer to the underlying
attribute store (e.g. AttributeMap).modifyAttribute
in interface EntityLocal
null
)public void removeAttribute(AttributeSensor<?> attribute)
removeAttribute
in interface EntityInternal
public <T> T setAttribute(AttributeSensorAndConfigKey<?,T> configuredSensor)
ConfigToAttributes.apply(EntityLocal, AttributeSensorAndConfigKey)
returns old value
public java.util.Map<AttributeSensor,java.lang.Object> getAllAttributes()
getAllAttributes
in interface EntityInternal
@Beta public brooklyn.entity.basic.AbstractEntity.BasicConfigurationSupport config()
config
in interface BrooklynObjectInternal
config
in interface Configurable
public <T> T getConfig(ConfigKey<T> key)
Entity
ConfigurationSupport#getConfig(ConfigKey)
,
via code like config().get(key)
.public <T> T getConfig(ConfigKey.HasConfigKey<T> key)
getConfig
in interface Entity
Entity.getConfig(ConfigKey)}
@Deprecated public <T> T getConfig(ConfigKey.HasConfigKey<T> key, T defaultValue)
getConfig
in interface EntityLocal
@Deprecated public <T> T getConfig(ConfigKey<T> key, T defaultValue)
getConfig
in interface EntityLocal
@Deprecated public Maybe<java.lang.Object> getConfigRaw(ConfigKey<?> key, boolean includeInherited)
Entity
getConfigRaw
in interface Entity
@Deprecated public Maybe<java.lang.Object> getConfigRaw(ConfigKey.HasConfigKey<?> key, boolean includeInherited)
getConfigRaw
in interface Entity
#getConfigRaw(ConfigKey, boolean)}.
@Deprecated public <T> T setConfig(ConfigKey<T> key, T val)
setConfig
in interface EntityLocal
setConfig
in interface Configurable
@Deprecated public <T> T setConfig(ConfigKey<T> key, Task<T> val)
setConfig
in interface EntityLocal
@Deprecated public <T> T setConfig(ConfigKey<T> key, DeferredSupplier val)
@Deprecated public <T> T setConfig(ConfigKey.HasConfigKey<T> key, T val)
setConfig
in interface EntityLocal
@Deprecated public <T> T setConfig(ConfigKey.HasConfigKey<T> key, Task<T> val)
setConfig
in interface EntityLocal
@Deprecated public <T> T setConfig(ConfigKey.HasConfigKey<T> key, DeferredSupplier val)
public <T> T setConfigEvenIfOwned(ConfigKey<T> key, T val)
public <T> T setConfigEvenIfOwned(ConfigKey.HasConfigKey<T> key, T val)
@Deprecated public void refreshInheritedConfig()
config().refreshInheritedConfig()
refreshInheritedConfig
in interface EntityInternal
@Deprecated public EntityConfigMap getConfigMap()
getConfigMap
in interface EntityInternal
@Deprecated public java.util.Map<ConfigKey<?>,java.lang.Object> getAllConfig()
getAllConfig
in interface EntityInternal
@Beta @Deprecated public ConfigBag getAllConfigBag()
EntityInternal
getAllConfigBag
in interface EntityInternal
@Beta @Deprecated public ConfigBag getLocalConfigBag()
EntityInternal
getLocalConfigBag
in interface EntityInternal
public <T> SubscriptionHandle subscribe(Entity producer, Sensor<T> sensor, SensorEventListener<? super T> listener)
EntityLocal
Sensor
on another entity.subscribe
in interface EntityLocal
EntityLocal.subscribe(brooklyn.entity.Entity, brooklyn.event.Sensor<T>, brooklyn.event.SensorEventListener<? super T>)
public <T> SubscriptionHandle subscribeToChildren(Entity parent, Sensor<T> sensor, SensorEventListener<? super T> listener)
public <T> SubscriptionHandle subscribeToMembers(Group group, Sensor<T> sensor, SensorEventListener<? super T> listener)
public boolean unsubscribe(Entity producer)
unsubscribe
in interface EntityLocal
SubscriptionContext.unsubscribe(SubscriptionHandle)
public boolean unsubscribe(Entity producer, SubscriptionHandle handle)
unsubscribe
in interface EntityLocal
SubscriptionContext.unsubscribe(SubscriptionHandle)
public SubscriptionContext getSubscriptionContext()
getSubscriptionContext
in interface EntityInternal
public ExecutionContext getExecutionContext()
EntityInternal
getExecutionContext
in interface EntityInternal
public java.lang.String toString()
toString
in class java.lang.Object
public void init()
initEnrichers()
.init
in class AbstractBrooklynObject
public java.util.Collection<Policy> getPolicies()
getPolicies
in interface Entity
public void addPolicy(Policy policy)
Entity
public <T extends Policy> T addPolicy(PolicySpec<T> spec)
Entity
public <T extends Enricher> T addEnricher(EnricherSpec<T> spec)
Entity
addEnricher
in interface Entity
public boolean removePolicy(Policy policy)
Entity
removePolicy
in interface Entity
public boolean removeAllPolicies()
EntityLocal
removeAllPolicies
in interface EntityLocal
public java.util.Collection<Enricher> getEnrichers()
getEnrichers
in interface Entity
public void addEnricher(Enricher enricher)
Entity
addEnricher
in interface Entity
public boolean removeEnricher(Enricher enricher)
Entity
removeEnricher
in interface Entity
public boolean removeAllEnrichers()
EntityLocal
removeAllEnrichers
in interface EntityLocal
public <T extends Feed> T addFeed(T feed)
EntityInternal.feeds()
and FeedSupport#addFeed(Feed)
.public EntityInternal.FeedSupport feeds()
feeds
in interface EntityInternal
@Deprecated public EntityInternal.FeedSupport getFeedSupport()
getFeedSupport
in interface EntityInternal
public <T> void emit(Sensor<T> sensor, T val)
EntityLocal
SensorEvent
event on behalf of this entity (as though produced by this entity).
Note that for attribute sensors it is nearly always recommended to use setAttribute, as this method will not update local values.
emit
in interface EntityLocal
public <T> void emitInternal(Sensor<T> sensor, T val)
public Effector<?> getEffector(java.lang.String effectorName)
EntityType.getEffectors()
Map
.getEffector
in interface EntityInternal
public <T> Task<T> invoke(Effector<T> eff, java.util.Map<java.lang.String,?> parameters)
invoke
in interface Entity
invoke(Effector)
public void onManagementStarting()
EntityManagementSupport
when this entity is becoming managed (i.e. it has a working
management context, but before the entity is visible to other entities), including during a rebind.public void onManagementStarted()
EntityManagementSupport
when this entity is fully managed and visible to other entities
through the management context.public void onManagementBecomingMaster()
ManagementContext
when this entity becomes managed at a particular management node,
including the initial management started and subsequent management node master-change for this entity.public void onManagementNoLongerMaster()
ManagementContext
when this entity becomes mastered at a particular management node,
including the final management end and subsequent management node master-change for this entity.public void onManagementStopped()
EntityManagementSupport
when this entity is fully unmanaged.
Note that the activies possible here (when unmanaged) are limited, and that this event may be caused by either a brooklyn node itself being demoted (so the entity is managed elsewhere) or by a controlled shutdown.
public void invalidateReferences()
public EntityManagementSupport getManagementSupport()
getManagementSupport
in interface EntityInternal
public void requestPersist()
EntityInternal
requestPersist
in interface EntityInternal
@Beta public RebindSupport<EntityMemento> getRebindSupport()
EntityInternal.getRebindSupport()
...
Users are strongly discouraged to call or override this method.
It is for internal calls only, relating to persisting/rebinding entities.
This method may change (or be removed) in a future release without notice.getRebindSupport
in interface BrooklynObjectInternal
getRebindSupport
in interface EntityInternal
getRebindSupport
in interface Rebindable
public boolean removeTag(java.lang.Object tag)
public boolean containsTag(java.lang.Object tag)
containsTag
in interface Entity