Update of /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv864/src/java/net/sf/asterisk/manager
Modified Files:
DefaultAsteriskManager.java Channel.java
Log Message:
Included full extension history in Channel
Index: DefaultAsteriskManager.java
===================================================================
RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/DefaultAsteriskManager.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -p -r1.16 -r1.17
--- DefaultAsteriskManager.java 8 Aug 2005 05:31:11 -0000 1.16
+++ DefaultAsteriskManager.java 8 Aug 2005 05:36:57 -0000 1.17
@@ -468,11 +468,7 @@ public class DefaultAsteriskManager
channel.setCallerId(event.getCallerId());
channel.setAccount(event.getAccount());
channel.setState(ChannelStateEnum.getEnum(event.getState()));
- channel.setCurrentExtension(extension);
- if (channel.getFirstExtension() == null)
- {
- channel.setFirstExtension(extension);
- }
+ channel.addExtension(extension);
if (event.getLink() != null)
{
@@ -644,11 +640,7 @@ public class DefaultAsteriskManager
synchronized (channel)
{
- channel.setCurrentExtension(extension);
- if (channel.getFirstExtension() == null)
- {
- channel.setFirstExtension(extension);
- }
+ channel.addExtension(extension);
}
}
Index: Channel.java
===================================================================
RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/Channel.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -p -r1.5 -r1.6
--- Channel.java 8 Aug 2005 05:22:07 -0000 1.5
+++ Channel.java 8 Aug 2005 05:36:57 -0000 1.6
@@ -17,7 +17,9 @@
package net.sf.asterisk.manager;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
/**
* @author srt
@@ -35,7 +37,7 @@ public class Channel implements Serializ
/**
* Unique id of this channel.
*/
- private String id;
+ private final String id;
/**
* Name of this channel.
@@ -56,8 +58,7 @@ public class Channel implements Serializ
* Account code used to bill this channel.
*/
private String account;
- private Extension firstExtension;
- private Extension currentExtension;
+ private final List extensions;
/**
* Date this channel has been created.
@@ -78,8 +79,7 @@ public class Channel implements Serializ
*/
public Channel(final String name, final String id)
{
- this.name = name;
- this.id = id;
+ this(name, id, null);
}
/**
@@ -95,6 +95,7 @@ public class Channel implements Serializ
this.name = name;
this.id = id;
this.asteriskServer = server;
+ this.extensions = new ArrayList();
}
/**
@@ -209,22 +210,48 @@ public class Channel implements Serializ
public final Extension getCurrentExtension()
{
- return currentExtension;
- }
-
- public void setCurrentExtension(Extension currentExtension)
- {
- this.currentExtension = currentExtension;
+ Extension extension;
+
+ synchronized (extensions)
+ {
+ if (extensions.isEmpty())
+ {
+ extension = null;
+ }
+ else
+ {
+ extension = (Extension) extensions.get(extensions.size() - 1);
+ }
+ }
+
+ return extension;
}
-
+
public Extension getFirstExtension()
{
- return firstExtension;
+ Extension extension;
+
+ synchronized (extensions)
+ {
+ if (extensions.isEmpty())
+ {
+ extension = null;
+ }
+ else
+ {
+ extension = (Extension) extensions.get(0);
+ }
+ }
+
+ return extension;
}
- public void setFirstExtension(Extension firstExtension)
+ public void addExtension(Extension extension)
{
- this.firstExtension = firstExtension;
+ synchronized (extensions)
+ {
+ extensions.add(extension);
+ }
}
/**
|