Updates alias list to provide a list of aliases for an identifier so that (#474)

we can account for multi-alias identifiers like patch groups and ensure
that patch group alias intentions are carried throughout the system for
recording, streaming, etc.

Updates all consumers of alias list data to ensure it can operate with
a list of aliases versus an assumed single alias.

Refactors APCO25 unit/user status identifiers from a base status class
so that alias list can support status identifiers.
This commit is contained in:
Denny Sheirer
2018-12-31 07:24:25 -05:00
committed by GitHub
parent 08ea5ab7cb
commit 3a39ae76ba
23 changed files with 484 additions and 189 deletions

View File

@@ -39,6 +39,9 @@ import io.github.dsheirer.sample.Listener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collections;
import java.util.List;
/**
* Channel metadata containing details about the channel configuration, decoder state and current
* set of decoded user identifiers (ie TO and FROM).
@@ -55,9 +58,9 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
private DecoderLogicalChannelNameIdentifier mDecoderLogicalChannelNameIdentifier;
private DecoderTypeConfigurationIdentifier mDecoderTypeConfigurationIdentifier;
private Identifier mFromIdentifier;
private Alias mFromIdentifierAlias;
private List<Alias> mFromIdentifierAliases;
private Identifier mToIdentifier;
private Alias mToIdentifierAlias;
private List<Alias> mToIdentifierAliases;
private IChannelMetadataUpdateListener mIChannelMetadataUpdateListener;
private AliasModel mAliasModel;
@@ -181,9 +184,9 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
/**
* Optional alias associated with the FROM identifier
*/
public Alias getFromIdentifierAlias()
public List<Alias> getFromIdentifierAliases()
{
return mFromIdentifierAlias;
return mFromIdentifierAliases;
}
/**
@@ -202,9 +205,9 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
/**
* Optional alias associated with the TO identifier
*/
public Alias getToIdentifierAlias()
public List<Alias> getToIdentifierAliases()
{
return mToIdentifierAlias;
return mToIdentifierAliases;
}
/**
@@ -255,11 +258,11 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
{
if(mToIdentifier != null)
{
mToIdentifierAlias = mAliasList.getAlias(mToIdentifier);
mToIdentifierAliases = mAliasList.getAliases(mToIdentifier);
}
if(mFromIdentifier != null)
{
mFromIdentifierAlias = mAliasList.getAlias(mFromIdentifier);
mFromIdentifierAliases = mAliasList.getAliases(mFromIdentifier);
}
}
}
@@ -306,11 +309,11 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
if(mAliasList != null && mFromIdentifier != null)
{
mFromIdentifierAlias = mAliasList.getAlias(mFromIdentifier);
mFromIdentifierAliases = mAliasList.getAliases(mFromIdentifier);
}
else
{
mFromIdentifierAlias = null;
mFromIdentifierAliases = Collections.EMPTY_LIST;
}
broadcastUpdate(ChannelMetadataField.USER_FROM);
@@ -321,11 +324,11 @@ public class ChannelMetadata implements Listener<IdentifierUpdateNotification>,
if(mAliasList != null && mToIdentifier != null)
{
mToIdentifierAlias = mAliasList.getAlias(mToIdentifier);
mToIdentifierAliases = mAliasList.getAliases(mToIdentifier);
}
else
{
mToIdentifierAlias = null;
mToIdentifierAliases = Collections.EMPTY_LIST;
}
broadcastUpdate(ChannelMetadataField.USER_TO);