/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.agent;
import org.mule.runtime.core.api.MuleContext;
import org.mule.runtime.api.exception.MuleException;
import org.mule.runtime.core.api.agent.Agent;
import org.mule.runtime.core.api.context.MuleContextAware;
/**
* Implements common methods for all Agents. Importantly, the MuleContext is made available to Agents that extend this.
*/
public abstract class AbstractAgent implements Agent, MuleContextAware {
protected MuleContext muleContext;
protected String name;
protected AbstractAgent(String name) {
this.name = name;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
public String getDescription() {
return name;
}
public void setMuleContext(MuleContext context) {
this.muleContext = context;
}
/**
* Quietly unregister ourselves.
*/
protected void unregisterMeQuietly() {
try {
// remove the agent from the list, it's not functional
muleContext.getRegistry().unregisterAgent(this.getName());
} catch (MuleException e) {
// not interested, really
}
}
}