org.asteriskjava.live.internal.AsteriskAgentImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of asterisk-java Show documentation
Show all versions of asterisk-java Show documentation
The free Java library for Asterisk PBX integration.
/*
* Copyright 2004-2006 Stefan Reuter
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.asteriskjava.live.internal;
import org.asteriskjava.live.AgentState;
import org.asteriskjava.live.AsteriskAgent;
import org.asteriskjava.lock.Locker.LockCloser;
/**
* Default implementation of the AsteriskAgent interface.
*
* @author Patrick Breucking
* @version $Id$
*/
public class AsteriskAgentImpl extends AbstractLiveObject implements AsteriskAgent
{
private String name;
private String agentId;
private AgentState state;
AsteriskAgentImpl(AsteriskServerImpl server, String name, String agentId, AgentState state)
{
super(server);
if (server == null || name == null || agentId == null)
{
throw new IllegalArgumentException("Parameters passed to AsteriskAgentImpl() must not be null.");
}
this.name = name;
this.agentId = agentId;
this.state = state;
}
public String getName()
{
return name;
}
public String getAgentId()
{
return agentId;
}
public AgentState getState()
{
return state;
}
void updateState(AgentState state)
{
try (LockCloser closer = this.withLock())
{
final AgentState oldState = this.state;
this.state = state;
firePropertyChange(PROPERTY_STATE, oldState, this.state);
}
}
@Override
public String toString()
{
final StringBuilder sb;
sb = new StringBuilder("AsteriskAgent[");
sb.append("agentId='").append(getAgentId()).append("',");
sb.append("name='").append(getName()).append("',");
sb.append("state=").append(getState()).append(",");
sb.append("systemHashcode=").append(System.identityHashCode(this));
sb.append("]");
return sb.toString();
}
}