|
Brooklyn | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbrooklyn.entity.basic.AbstractEntity
public abstract class AbstractEntity
Default Entity implementation, which should be extended whenever implementing an entity.
Provides several common fields (displayName, 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:
The legacy (pre 0.5) mechanism for creating entities is for others to call the constructor directly. This is now deprecated.
Field Summary | |
---|---|
static BasicNotificationSensor |
CHILD_ADDED
|
static BasicNotificationSensor |
CHILD_REMOVED
|
static BasicNotificationSensor |
EFFECTOR_ADDED
|
static BasicNotificationSensor |
EFFECTOR_CHANGED
|
static BasicNotificationSensor |
EFFECTOR_REMOVED
|
static BasicNotificationSensor |
POLICY_ADDED
|
static BasicNotificationSensor |
POLICY_REMOVED
|
static BasicNotificationSensor |
SENSOR_ADDED
|
static BasicNotificationSensor |
SENSOR_REMOVED
|
protected SubscriptionTracker |
_subscriptionTracker
|
protected EntityManagementSupport |
managementSupport
|
protected java.util.Map |
tempWorkings
|
Constructor Summary | |
AbstractEntity()
|
|
AbstractEntity(java.util.Map flags)
@deprecated since 0.5; instead use no-arg constructor with EntityManager().createEntity(spec) |
|
AbstractEntity(Entity parent)
@deprecated since 0.5; instead use no-arg constructor with EntityManager().createEntity(spec) |
|
AbstractEntity(java.util.Map flags, Entity parent)
|
Method Summary | |
---|---|
java.lang.Object
|
addChild(java.lang.Object child)
Creates an entity using the given spec, and adds it as a child of this entity. |
java.lang.Object
|
addChild(EntitySpec spec)
Adds this as a member of the given group, registers with application if necessary |
java.lang.Object
|
addEnricher(EnricherSpec spec)
|
void
|
addEnricher(Enricher enricher)
Invoke an Effector directly. |
void
|
addGroup(Group e)
Returns the application, looking it up if not yet known (registering if necessary) |
void
|
addLocations(java.util.Collection newLocations)
|
void
|
addPolicy(Policy policy)
|
java.lang.Object
|
addPolicy(PolicySpec spec)
|
void
|
clearLocations()
|
void
|
clearParent()
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. |
AbstractEntity
|
configure()
|
AbstractEntity
|
configure(java.util.Map flags)
|
AbstractEntity
|
configure(ConfigKey key, java.lang.Object value)
Sets a config key value, and returns this Entity instance for use in fluent-API style coding. |
AbstractEntity
|
configure(ConfigKey key, java.lang.String value)
|
AbstractEntity
|
configure(HasConfigKey key, java.lang.Object value)
|
AbstractEntity
|
configure(HasConfigKey key, java.lang.String value)
|
void
|
destroy()
|
void
|
emit(Sensor sensor, java.lang.Object val)
Invoked by EntityManagementSupport when this entity is becoming managed (i.e. it has a working management context, but before the entity is visible to other entities). |
void
|
emitInternal(Sensor sensor, java.lang.Object val)
Invoked by EntityManagementSupport when this entity is fully managed and visible to other entities through the management context. |
boolean
|
equals(java.lang.Object o)
|
protected void
|
finalize()
|
Location
|
firstLocation()
|
java.util.Map
|
getAllAttributes()
|
java.util.Map
|
getAllConfig()
|
ConfigBag
|
getAllConfigBag()
Unsubscribes the given producer. |
Application
|
getApplication()
|
java.lang.String
|
getApplicationId()
|
java.lang.Object
|
getAttribute(AttributeSensor attribute)
|
java.lang.Object
|
getAttributeByNameParts(java.util.List nameParts)
|
java.util.Collection
|
getChildren()
|
java.lang.Object
|
getConfig(ConfigKey key)
|
java.lang.Object
|
getConfig(HasConfigKey key)
|
java.lang.Object
|
getConfig(HasConfigKey key, java.lang.Object defaultValue)
|
java.lang.Object
|
getConfig(ConfigKey key, java.lang.Object defaultValue)
|
EntityConfigMap
|
getConfigMap()
@see EntityLocal#subscribeToMembers |
Maybe
|
getConfigRaw(ConfigKey key, boolean includeInherited)
|
Maybe
|
getConfigRaw(HasConfigKey key, boolean includeInherited)
|
long
|
getCreationTime()
allows subclasses to set the default display name to use if none is provided |
java.lang.String
|
getDisplayName()
|
Effector
|
getEffector(java.lang.String effectorName)
Invoked by 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. |
java.util.Collection
|
getEnrichers()
Convenience for finding named effector in EntityType#getEffectors()#getEffectors() java.util.Map. |
protected EntityManager
|
getEntityManager()
|
EntityType
|
getEntityType()
|
protected java.lang.String
|
getEntityTypeName()
|
ExecutionContext
|
getExecutionContext()
|
java.util.Collection
|
getGroups()
|
java.lang.String
|
getIconUrl()
Gets the entity type name, to be returned by |
java.lang.String
|
getId()
|
ConfigBag
|
getLocalConfigBag()
|
java.util.Collection
|
getLocations()
|
ManagementContext
|
getManagementContext()
|
EntityManagementSupport
|
getManagementSupport()
|
EntityDynamicType
|
getMutableEntityType()
|
Entity
|
getParent()
@deprecated since 0.4.0 should not be needed / leaked outwith brooklyn internals / mgmt support? |
java.util.Collection
|
getPolicies()
|
Entity
|
getProxy()
|
Entity
|
getProxyIfAvailable()
|
RebindSupport
|
getRebindSupport()
|
SubscriptionContext
|
getSubscriptionContext()
|
protected SubscriptionTracker
|
getSubscriptionTracker()
|
int
|
hashCode()
|
void
|
init()
Adds this as a child of the given entity; registers with application if necessary. |
void
|
invalidateReferences()
|
Task
|
invoke(Effector eff)
Invoked by EntityManagementSupport when this entity is fully unmanaged. |
Task
|
invoke(java.util.Map parameters, Effector eff)
|
Task
|
invoke(Effector eff, java.util.Map parameters)
For use by management plane, to invalidate all fields (e.g. when an entity is changing to being proxied) |
protected boolean
|
isLegacyConstruction()
|
void
|
onManagementBecomingMaster()
|
void
|
onManagementNoLongerMaster()
|
void
|
onManagementStarted()
|
void
|
onManagementStarting()
|
void
|
onManagementStopped()
|
void
|
refreshInheritedConfig()
|
boolean
|
removeAllEnrichers()
|
boolean
|
removeAllPolicies()
|
void
|
removeAttribute(AttributeSensor attribute)
|
boolean
|
removeChild(Entity child)
|
boolean
|
removeEnricher(Enricher enricher)
|
void
|
removeLocations(java.util.Collection removedLocations)
Should be invoked at end-of-life to clean up the item. |
boolean
|
removePolicy(Policy policy)
|
protected void
|
setApplication(Application app)
|
java.lang.Object
|
setAttribute(AttributeSensor attribute, java.lang.Object val)
|
java.lang.Object
|
setAttribute(AttributeSensorAndConfigKey configuredSensor)
|
java.lang.Object
|
setAttributeWithoutPublishing(AttributeSensor attribute, java.lang.Object val)
|
java.lang.Object
|
setConfig(ConfigKey key, java.lang.Object val)
|
java.lang.Object
|
setConfig(ConfigKey key, Task val)
|
java.lang.Object
|
setConfig(ConfigKey key, DeferredSupplier val)
|
java.lang.Object
|
setConfig(HasConfigKey key, java.lang.Object val)
|
java.lang.Object
|
setConfig(HasConfigKey key, Task val)
|
java.lang.Object
|
setConfig(HasConfigKey key, DeferredSupplier val)
|
java.lang.Object
|
setConfigEvenIfOwned(ConfigKey key, java.lang.Object val)
|
java.lang.Object
|
setConfigEvenIfOwned(HasConfigKey key, java.lang.Object val)
|
protected void
|
setConfigIfValNonNull(ConfigKey key, java.lang.Object val)
|
protected void
|
setConfigIfValNonNull(HasConfigKey key, java.lang.Object val)
|
protected void
|
setDefaultDisplayName(java.lang.String displayNameIfDefault)
|
void
|
setDisplayName(java.lang.String newDisplayName)
|
void
|
setManagementContext(ManagementContextInternal managementContext)
|
AbstractEntity
|
setParent(Entity entity)
|
void
|
setProxy(Entity proxy)
|
SubscriptionHandle
|
subscribe(Entity producer, Sensor sensor, SensorEventListener listener)
|
SubscriptionHandle
|
subscribeToChildren(Entity parent, Sensor sensor, SensorEventListener listener)
Default String representation is simplified name of class, together with selected fields. |
SubscriptionHandle
|
subscribeToMembers(Group group, Sensor sensor, SensorEventListener listener)
|
java.util.Map
|
toMetadataRecord()
|
java.lang.String
|
toString()
|
protected ToStringHelper
|
toStringHelper()
|
boolean
|
unsubscribe(Entity producer)
|
boolean
|
unsubscribe(Entity producer, SubscriptionHandle handle)
|
Methods inherited from class java.lang.Object | |
---|---|
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Field Detail |
---|
public static final BasicNotificationSensor CHILD_ADDED
public static final BasicNotificationSensor CHILD_REMOVED
public static final BasicNotificationSensor EFFECTOR_ADDED
public static final BasicNotificationSensor EFFECTOR_CHANGED
public static final BasicNotificationSensor EFFECTOR_REMOVED
public static final BasicNotificationSensor POLICY_ADDED
public static final BasicNotificationSensor POLICY_REMOVED
public static final BasicNotificationSensor SENSOR_ADDED
public static final BasicNotificationSensor SENSOR_REMOVED
protected SubscriptionTracker _subscriptionTracker
protected final EntityManagementSupport managementSupport
@java.lang.Deprecated} protected final java.util.Map tempWorkings
Constructor Detail |
---|
public AbstractEntity()
@java.lang.Deprecatedpublic AbstractEntity(Entity parent) { public AbstractEntity(java.util.Map flags)
@java.lang.Deprecated public AbstractEntity(Entity parent)
@java.lang.Deprecated} public AbstractEntity(java.util.Map flags, Entity parent)
Method Detail |
---|
@java.lang.Override} public java.lang.Object addChild(java.lang.Object child)
spec.getParent()
is set and is different from this entity
@java.lang.Override public java.lang.Object addChild(EntitySpec spec)
@java.lang.Overrideboolean changed = false; public java.lang.Object addEnricher(EnricherSpec spec)
@java.lang.Override public void addEnricher(Enricher enricher)
@java.lang.Override} public void addGroup(Group e)
@java.lang.Overridepublic void clearLocations() { public void addLocations(java.util.Collection newLocations)
@java.lang.Override} public void addPolicy(Policy policy)
@java.lang.Overridepublic boolean removeEnricher(Enricher enricher) { public java.lang.Object addPolicy(PolicySpec spec)
@java.lang.OverridepublicT setAttributeWithoutPublishing(AttributeSensor attribute, T val) { public void clearLocations()
@java.lang.Override} public void clearParent()
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 AbstractEntity#init()#init() is invoked)
and so will need an explicit getEntityManager().manage(childReturnedFromThis)
call.
These semantics are currently under review.
public AbstractEntity configure()
@java.lang.Overrideif (suppliedParent != null) { public AbstractEntity configure(java.util.Map flags)
public AbstractEntity configure(ConfigKey key, java.lang.Object value)
public AbstractEntity configure(ConfigKey key, java.lang.String value)
public AbstractEntity configure(HasConfigKey key, java.lang.Object value)
public AbstractEntity configure(HasConfigKey key, java.lang.String value)
@java.lang.Override/** sets the value of the given attribute sensor from the config key value herein public void destroy()
@java.lang.Override} public void emit(Sensor sensor, java.lang.Object val)
public void emitInternal(Sensor sensor, java.lang.Object val)
@java.lang.Overridepublic String getId() { public boolean equals(java.lang.Object o)
@java.lang.Override protected void finalize()
public Location firstLocation()
@java.lang.Overridereturn getSubscriptionTracker().unsubscribe(producer, handle); public java.util.Map getAllAttributes()
@java.lang.Override/** public java.util.Map getAllConfig()
@Beta@Override @java.lang.Overridepublic boolean unsubscribe(Entity producer) { public ConfigBag getAllConfigBag()
@java.lang.Overrideprotected EntityManager getEntityManager() { public Application getApplication()
@java.lang.OverrideSettruelyNewLocations = Sets.newLinkedHashSet(newLocations); public java.lang.String getApplicationId()
@java.lang.Override* @deprecated on interface since 0.5.0; use {@link ConfigToAttributes#apply(EntityLocal, AttributeSensorAndConfigKey)} */ public java.lang.Object getAttribute(AttributeSensor attribute)
public java.lang.Object getAttributeByNameParts(java.util.List nameParts)
@java.lang.Override} public java.util.Collection getChildren()
@java.lang.Override public java.lang.Object getConfig(ConfigKey key)
@java.lang.Overridereturn setConfigInternal(key, val); public java.lang.Object getConfig(HasConfigKey key)
@java.lang.Overridereturn setConfigInternal(key, val); public java.lang.Object getConfig(HasConfigKey key, java.lang.Object defaultValue)
@java.lang.Override public java.lang.Object getConfig(ConfigKey key, java.lang.Object defaultValue)
@java.lang.Override public EntityConfigMap getConfigMap()
@java.lang.Override public Maybe getConfigRaw(ConfigKey key, boolean includeInherited)
@java.lang.OverridepublicT setConfig(HasConfigKey key, DeferredSupplier val) { public Maybe getConfigRaw(HasConfigKey key, boolean includeInherited)
@java.lang.Overrideif (displayNameAutoGenerated) { public long getCreationTime()
@java.lang.Override/** public java.lang.String getDisplayName()
public Effector getEffector(java.lang.String effectorName)
@java.lang.Override public java.util.Collection getEnrichers()
protected EntityManager getEntityManager()
@java.lang.Override} public EntityType getEntityType()
protected java.lang.String getEntityTypeName()
@java.lang.Overridereturn enricher; public ExecutionContext getExecutionContext()
@java.lang.Overridereturn (app == null) ? null : app.getId(); public java.util.Collection getGroups()
@java.lang.Overrideprotected String getEntityTypeName() { public java.lang.String getIconUrl()
getEntityType().getName()
.
To be called by brooklyn internals only.
Can be overridden to customize the name.
@java.lang.Overridereturn selfProxy; public java.lang.String getId()
@Beta* Unsubscribes the given handle. @java.lang.Override* public ConfigBag getLocalConfigBag()
@java.lang.Override// around forever, even if not referenced. public java.util.Collection getLocations()
@java.lang.Override public ManagementContext getManagementContext()
@java.lang.Override public EntityManagementSupport getManagementSupport()
@java.lang.Overridelocations.set(MutableList.builder().addAll(oldLocations).removeAll(removedLocations).buildImmutable()); public EntityDynamicType getMutableEntityType()
@java.lang.Overrideif (application.getId() != app.getId()) { public Entity getParent()
@java.lang.Override} public java.util.Collection getPolicies()
public Entity getProxy()
@Beta* public Entity getProxyIfAvailable()
@java.lang.Override public RebindSupport getRebindSupport()
@java.lang.Override public SubscriptionContext getSubscriptionContext()
protected SubscriptionTracker getSubscriptionTracker()
@java.lang.Overrideprotected boolean isLegacyConstruction() { public int hashCode()
public void init()
public void invalidateReferences()
public Task invoke(Effector eff)
public Task invoke(java.util.Map parameters, Effector eff)
@java.lang.Overridepublic void invalidateReferences() { public Task invoke(Effector eff, java.util.Map parameters)
protected boolean isLegacyConstruction()
public void onManagementBecomingMaster()
public void onManagementNoLongerMaster()
public void onManagementStarted()
public void onManagementStarting()
public void onManagementStopped()
@java.lang.Override} public void refreshInheritedConfig()
@java.lang.Overridereturn EffectorUtils.invokeEffectorAsync(this, eff, parameters); public boolean removeAllEnrichers()
@java.lang.Overrideif (LOG.isDebugEnabled()) LOG.debug("Emitting sensor notification {} value {} on {}", new Object[] {sensor.getName(), val, this}); public boolean removeAllPolicies()
@java.lang.Override public void removeAttribute(AttributeSensor attribute)
@java.lang.Override} public boolean removeChild(Entity child)
@java.lang.Override* Additional form supplied for when the parameter map needs to be made explicit. public boolean removeEnricher(Enricher enricher)
@java.lang.Override} public void removeLocations(java.util.Collection removedLocations)
@java.lang.Override// -------- SENSORS -------------------- public boolean removePolicy(Policy policy)
protected void setApplication(Application app)
@java.lang.Override public java.lang.Object setAttribute(AttributeSensor attribute, java.lang.Object val)
public java.lang.Object setAttribute(AttributeSensorAndConfigKey configuredSensor)
@java.lang.Override} public java.lang.Object setAttributeWithoutPublishing(AttributeSensor attribute, java.lang.Object val)
@java.lang.Override} public java.lang.Object setConfig(ConfigKey key, java.lang.Object val)
@java.lang.Overridevoid refreshInheritedConfigOfChildren() { public java.lang.Object setConfig(ConfigKey key, Task val)
public java.lang.Object setConfig(ConfigKey key, DeferredSupplier val)
@java.lang.Override} public java.lang.Object setConfig(HasConfigKey key, java.lang.Object val)
@java.lang.Override} public java.lang.Object setConfig(HasConfigKey key, Task val)
public java.lang.Object setConfig(HasConfigKey key, DeferredSupplier val)
public java.lang.Object setConfigEvenIfOwned(ConfigKey key, java.lang.Object val)
public java.lang.Object setConfigEvenIfOwned(HasConfigKey key, java.lang.Object val)
protected void setConfigIfValNonNull(ConfigKey key, java.lang.Object val)
protected void setConfigIfValNonNull(HasConfigKey key, java.lang.Object val)
protected void setDefaultDisplayName(java.lang.String displayNameIfDefault)
@java.lang.Overridereturn typeName; public void setDisplayName(java.lang.String newDisplayName)
public void setManagementContext(ManagementContextInternal managementContext)
@java.lang.OverriderefreshInheritedConfig(); public AbstractEntity setParent(Entity entity)
public void setProxy(Entity proxy)
@java.lang.Overridepublic synchronized ExecutionContext getExecutionContext() { public SubscriptionHandle subscribe(Entity producer, Sensor sensor, SensorEventListener listener)
@java.lang.Overridepublic String toString() { public SubscriptionHandle subscribeToChildren(Entity parent, Sensor sensor, SensorEventListener listener)
@java.lang.Override* public SubscriptionHandle subscribeToMembers(Group group, Sensor sensor, SensorEventListener listener)
@java.lang.OverridegetManagementSupport().getEntityChangeListener().onChanged(); public java.util.Map toMetadataRecord()
@java.lang.Overrideboolean changed = policies.remove(policy); public java.lang.String toString()
protected ToStringHelper toStringHelper()
@java.lang.Override// -------- POLICIES -------------------- public boolean unsubscribe(Entity producer)
@java.lang.Override((AbstractPolicy)policy).setEntity(this); public boolean unsubscribe(Entity producer, SubscriptionHandle handle)
Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.