mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
Merge branch 'master' into #90-channel_processing_list_and_gui_reformat
# Conflicts: # src/alias/AliasList.java
This commit is contained in:
@@ -48,16 +48,16 @@ public class AliasList implements Listener<AliasEvent>
|
||||
public static final String WILDCARD = "*";
|
||||
public static final String REGEX_WILDCARD = ".";
|
||||
|
||||
private Map<String,Alias> mESN = new HashMap<>();
|
||||
private Map<String,Alias> mFleetsync = new HashMap<>();
|
||||
private Map<LoJackFunctionAndID,Alias> mLoJack = new HashMap<>();
|
||||
private Map<String,Alias> mMDC1200 = new HashMap<>();
|
||||
private Map<String,Alias> mMobileID = new HashMap<>();
|
||||
private Map<String,Alias> mMPT1327 = new HashMap<>();
|
||||
private Map<String,Alias> mSiteID = new HashMap<>();
|
||||
private Map<Integer,Alias> mStatus = new HashMap<>();
|
||||
private Map<String,Alias> mTalkgroup = new HashMap<>();
|
||||
private Map<Integer,Alias> mUniqueID = new HashMap<>();
|
||||
private Map<String, Alias> mESN = new HashMap<>();
|
||||
private Map<String, Alias> mFleetsync = new HashMap<>();
|
||||
private Map<LoJackFunctionAndID, Alias> mLoJack = new HashMap<>();
|
||||
private Map<String, Alias> mMDC1200 = new HashMap<>();
|
||||
private Map<String, Alias> mMobileID = new HashMap<>();
|
||||
private Map<String, Alias> mMPT1327 = new HashMap<>();
|
||||
private Map<String, Alias> mSiteID = new HashMap<>();
|
||||
private Map<Integer, Alias> mStatus = new HashMap<>();
|
||||
private Map<String, Alias> mTalkgroup = new HashMap<>();
|
||||
private Map<Integer, Alias> mUniqueID = new HashMap<>();
|
||||
|
||||
private List<WildcardID> mESNWildcards = new ArrayList<>();
|
||||
private List<WildcardID> mMobileIDWildcards = new ArrayList<>();
|
||||
@@ -124,7 +124,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
|
||||
if(fleetsync != null)
|
||||
{
|
||||
if(fleetsync.contains(WILDCARD))
|
||||
if (fleetsync.contains(WILDCARD))
|
||||
{
|
||||
mFleetsyncWildcards.add(new WildcardID(fleetsync));
|
||||
Collections.sort(mFleetsyncWildcards);
|
||||
@@ -137,11 +137,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
mLoJack.put((LoJackFunctionAndID) id, alias);
|
||||
break;
|
||||
case MDC1200:
|
||||
String mdc = ((MDC1200ID) id).getIdent();
|
||||
String mdc = ((MDC1200ID)id).getIdent();
|
||||
|
||||
if(mdc != null)
|
||||
{
|
||||
if(mdc.contains(WILDCARD))
|
||||
if (mdc.contains(WILDCARD))
|
||||
{
|
||||
mMDC1200Wildcards.add(new WildcardID(mdc));
|
||||
Collections.sort(mMDC1200Wildcards);
|
||||
@@ -151,11 +151,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
break;
|
||||
case MPT1327:
|
||||
String mpt = ((MPT1327ID) id).getIdent();
|
||||
String mpt = ((MPT1327ID)id).getIdent();
|
||||
|
||||
if(mpt != null)
|
||||
{
|
||||
if(mpt.contains(WILDCARD))
|
||||
if (mpt.contains(WILDCARD))
|
||||
{
|
||||
mMPT1327Wildcards.add(new WildcardID(mpt));
|
||||
Collections.sort(mMPT1327Wildcards);
|
||||
@@ -165,11 +165,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
break;
|
||||
case MIN:
|
||||
String min = ((Min) id).getMin();
|
||||
String min = ((Min)id).getMin();
|
||||
|
||||
if(min != null)
|
||||
{
|
||||
if(min.contains(WILDCARD))
|
||||
if (min.contains(WILDCARD))
|
||||
{
|
||||
mMobileIDWildcards.add(new WildcardID(min));
|
||||
Collections.sort(mMobileIDWildcards);
|
||||
@@ -179,14 +179,14 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
break;
|
||||
case LTR_NET_UID:
|
||||
mUniqueID.put(((UniqueID) id).getUid(), alias);
|
||||
mUniqueID.put(((UniqueID)id).getUid(), alias);
|
||||
break;
|
||||
case SITE:
|
||||
String siteID = ((SiteID) id).getSite();
|
||||
String siteID = ((SiteID)id).getSite();
|
||||
|
||||
if(siteID != null)
|
||||
{
|
||||
if(siteID.contains(WILDCARD))
|
||||
if (siteID.contains(WILDCARD))
|
||||
{
|
||||
mSiteWildcards.add(new WildcardID(siteID));
|
||||
Collections.sort(mSiteWildcards);
|
||||
@@ -199,11 +199,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
mStatus.put(((StatusID) id).getStatus(), alias);
|
||||
break;
|
||||
case TALKGROUP:
|
||||
String tgid = ((TalkgroupID) id).getTalkgroup();
|
||||
String tgid = ((TalkgroupID)id).getTalkgroup();
|
||||
|
||||
if(tgid != null)
|
||||
{
|
||||
if(tgid.contains(WILDCARD))
|
||||
if (tgid.contains(WILDCARD))
|
||||
{
|
||||
mTalkgroupWildcards.add(new WildcardID(tgid));
|
||||
Collections.sort(mTalkgroupWildcards);
|
||||
@@ -222,7 +222,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
catch (Exception e)
|
||||
{
|
||||
mLog.error("Couldn't add alias ID " + id + " for alias " + alias);
|
||||
}
|
||||
@@ -234,9 +234,9 @@ public class AliasList implements Listener<AliasEvent>
|
||||
*/
|
||||
public void removeAlias(Alias alias)
|
||||
{
|
||||
if(alias != null)
|
||||
if (alias != null)
|
||||
{
|
||||
for(AliasID aliasID : alias.getId())
|
||||
for (AliasID aliasID : alias.getId())
|
||||
{
|
||||
removeAliasID(aliasID, alias);
|
||||
}
|
||||
@@ -247,7 +247,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
if(value != null)
|
||||
{
|
||||
for(WildcardID wildcardID : wildcards)
|
||||
for(WildcardID wildcardID: wildcards)
|
||||
{
|
||||
if(wildcardID.value().equals(value))
|
||||
{
|
||||
@@ -262,12 +262,12 @@ public class AliasList implements Listener<AliasEvent>
|
||||
*/
|
||||
private void removeAliasID(AliasID id, Alias alias)
|
||||
{
|
||||
if(id.isValid())
|
||||
if (id.isValid())
|
||||
{
|
||||
switch(id.getType())
|
||||
switch (id.getType())
|
||||
{
|
||||
case ESN:
|
||||
String esn = ((Esn) id).getEsn();
|
||||
String esn = ((Esn)id).getEsn();
|
||||
|
||||
if(esn != null)
|
||||
{
|
||||
@@ -280,13 +280,13 @@ public class AliasList implements Listener<AliasEvent>
|
||||
mESN.remove(esn);
|
||||
break;
|
||||
case FLEETSYNC:
|
||||
String fleetsync = ((FleetsyncID) id).getIdent();
|
||||
String fleetsync = ((FleetsyncID)id).getIdent();
|
||||
|
||||
if(fleetsync != null)
|
||||
{
|
||||
if(fleetsync.contains(WILDCARD))
|
||||
{
|
||||
removeWildcard(fleetsync, mFleetsyncWildcards);
|
||||
removeWildcard(fleetsync,mFleetsyncWildcards);
|
||||
}
|
||||
|
||||
mFleetsync.remove(fleetsync);
|
||||
@@ -296,7 +296,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
mLoJack.remove((LoJackFunctionAndID) id);
|
||||
break;
|
||||
case MDC1200:
|
||||
String mdc = ((MDC1200ID) id).getIdent();
|
||||
String mdc = ((MDC1200ID)id).getIdent();
|
||||
|
||||
if(mdc != null)
|
||||
{
|
||||
@@ -309,7 +309,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
break;
|
||||
case MPT1327:
|
||||
String mpt = ((MPT1327ID) id).getIdent();
|
||||
String mpt = ((MPT1327ID)id).getIdent();
|
||||
|
||||
if(mpt != null)
|
||||
{
|
||||
@@ -322,7 +322,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
break;
|
||||
case MIN:
|
||||
String min = ((Min) id).getMin();
|
||||
String min = ((Min)id).getMin();
|
||||
|
||||
if(min != null)
|
||||
{
|
||||
@@ -344,7 +344,7 @@ public class AliasList implements Listener<AliasEvent>
|
||||
mStatus.remove(((StatusID) id).getStatus());
|
||||
break;
|
||||
case TALKGROUP:
|
||||
String tgid = ((TalkgroupID) id).getTalkgroup();
|
||||
String tgid = ((TalkgroupID)id).getTalkgroup();
|
||||
|
||||
if(tgid != null)
|
||||
{
|
||||
@@ -378,11 +378,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
*/
|
||||
private String getWildcardMatch(String id, List<WildcardID> wildcards)
|
||||
{
|
||||
if(id != null)
|
||||
if (id != null)
|
||||
{
|
||||
for(WildcardID wildcard : wildcards)
|
||||
for (WildcardID wildcard : wildcards)
|
||||
{
|
||||
if(wildcard.matches(id))
|
||||
if (wildcard.matches(id))
|
||||
{
|
||||
return wildcard.value();
|
||||
}
|
||||
@@ -399,15 +399,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(siteID != null)
|
||||
if (siteID != null)
|
||||
{
|
||||
alias = mSiteID.get(siteID);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(siteID, mSiteWildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mSiteID.get(wildcard);
|
||||
}
|
||||
@@ -440,15 +440,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(esn != null)
|
||||
if (esn != null)
|
||||
{
|
||||
alias = mESN.get(esn);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(esn, mESNWildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mESN.get(wildcard);
|
||||
}
|
||||
@@ -465,15 +465,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(ident != null)
|
||||
if (ident != null)
|
||||
{
|
||||
alias = mFleetsync.get(ident);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(ident, mFleetsyncWildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mFleetsync.get(wildcard);
|
||||
}
|
||||
@@ -488,11 +488,11 @@ public class AliasList implements Listener<AliasEvent>
|
||||
*/
|
||||
public Alias getLoJackAlias(Function function, String id)
|
||||
{
|
||||
if(id != null)
|
||||
if (id != null)
|
||||
{
|
||||
for(LoJackFunctionAndID lojack : mLoJack.keySet())
|
||||
for (LoJackFunctionAndID lojack : mLoJack.keySet())
|
||||
{
|
||||
if(lojack.matches(function, id))
|
||||
if (lojack.matches(function, id))
|
||||
{
|
||||
return mLoJack.get(lojack);
|
||||
}
|
||||
@@ -509,15 +509,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(ident != null)
|
||||
if (ident != null)
|
||||
{
|
||||
alias = mMDC1200.get(ident);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(ident, mMDC1200Wildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mMDC1200.get(wildcard);
|
||||
}
|
||||
@@ -534,15 +534,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(ident != null)
|
||||
if (ident != null)
|
||||
{
|
||||
alias = mMPT1327.get(ident);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(ident, mMPT1327Wildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mMPT1327.get(wildcard);
|
||||
}
|
||||
@@ -559,15 +559,15 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(ident != null)
|
||||
if (ident != null)
|
||||
{
|
||||
alias = mMobileID.get(ident);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null)
|
||||
{
|
||||
String wildcard = getWildcardMatch(ident, mMobileIDWildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mMobileID.get(wildcard);
|
||||
}
|
||||
@@ -579,20 +579,24 @@ public class AliasList implements Listener<AliasEvent>
|
||||
|
||||
/**
|
||||
* Lookup alias by talkgroup
|
||||
*
|
||||
* @param tgid to use when searching for an alias
|
||||
* @param includeWildcards true if you want to additionally search for a matching alias that contains wildcard(s)
|
||||
* when there is not a direct match to the TGID.
|
||||
*/
|
||||
public Alias getTalkgroupAlias(String tgid)
|
||||
public Alias getTalkgroupAlias(String tgid, boolean includeWildcards)
|
||||
{
|
||||
Alias alias = null;
|
||||
|
||||
if(tgid != null)
|
||||
if (tgid != null)
|
||||
{
|
||||
alias = mTalkgroup.get(tgid);
|
||||
|
||||
if(alias == null)
|
||||
if (alias == null && includeWildcards)
|
||||
{
|
||||
String wildcard = getWildcardMatch(tgid, mTalkgroupWildcards);
|
||||
|
||||
if(wildcard != null)
|
||||
if (wildcard != null)
|
||||
{
|
||||
alias = mTalkgroup.get(wildcard);
|
||||
}
|
||||
@@ -603,8 +607,16 @@ public class AliasList implements Listener<AliasEvent>
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias list name
|
||||
* Lookup alias by talkgroup. Defaults to matching to wildcard talkgroups.
|
||||
*/
|
||||
public Alias getTalkgroupAlias(String tgid)
|
||||
{
|
||||
return getTalkgroupAlias(tgid, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias list name
|
||||
*/
|
||||
public String toString()
|
||||
{
|
||||
return mName;
|
||||
@@ -627,22 +639,22 @@ public class AliasList implements Listener<AliasEvent>
|
||||
{
|
||||
Alias alias = event.getAlias();
|
||||
|
||||
switch(event.getEvent())
|
||||
switch (event.getEvent())
|
||||
{
|
||||
case ADD:
|
||||
if(alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
if (alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
{
|
||||
addAlias(alias);
|
||||
}
|
||||
break;
|
||||
case CHANGE:
|
||||
if(alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
if (alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
{
|
||||
addAlias(alias);
|
||||
}
|
||||
break;
|
||||
case DELETE:
|
||||
if(alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
if (alias.getList() != null && getName().equalsIgnoreCase(alias.getList()))
|
||||
{
|
||||
removeAlias(alias);
|
||||
}
|
||||
|
||||
@@ -144,19 +144,16 @@ public class PatchGroupAlias extends Alias
|
||||
}
|
||||
else
|
||||
{
|
||||
if(getId().size() > 0)
|
||||
for(AliasID id: getId())
|
||||
{
|
||||
for(AliasID id: getId())
|
||||
if(id.getType() == AliasIDType.TALKGROUP)
|
||||
{
|
||||
if(id.getType() == AliasIDType.TALKGROUP)
|
||||
{
|
||||
return "PATCH:" + ((TalkgroupID)id).getTalkgroup();
|
||||
}
|
||||
return "PATCH:" + ((TalkgroupID)id).getTalkgroup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return "PATCH";
|
||||
return "PATCH:****";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -164,16 +161,22 @@ public class PatchGroupAlias extends Alias
|
||||
{
|
||||
List<AliasAction> aliasActions = new ArrayList<>();
|
||||
|
||||
for(Alias alias: mPatchedAliases)
|
||||
{
|
||||
aliasActions.addAll(alias.getAction());
|
||||
}
|
||||
|
||||
if(hasPatchGroupAlias())
|
||||
{
|
||||
aliasActions.addAll(getPatchGroupAlias().getAction());
|
||||
}
|
||||
|
||||
for(Alias alias: mPatchedAliases)
|
||||
{
|
||||
for(AliasAction action: alias.getAction())
|
||||
{
|
||||
if(!aliasActions.contains(action))
|
||||
{
|
||||
aliasActions.add(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return aliasActions;
|
||||
}
|
||||
|
||||
@@ -198,7 +201,7 @@ public class PatchGroupAlias extends Alias
|
||||
|
||||
for(Alias alias: mPatchedAliases)
|
||||
{
|
||||
if(alias.getCallPriority() < highestPriority)
|
||||
if(alias.hasCallPriority() && alias.getCallPriority() < highestPriority)
|
||||
{
|
||||
highestPriority = alias.getCallPriority();
|
||||
}
|
||||
|
||||
@@ -2917,8 +2917,8 @@ public class P25DecoderState extends DecoderState
|
||||
{
|
||||
PatchGroupAlias patchGroupAlias = null;
|
||||
|
||||
//Check for an existing alias for the patch talkgroup
|
||||
Alias existingAlias = getAliasList().getTalkgroupAlias(patchGroupID);
|
||||
//Check for an existing alias for the patch talkgroup - do not include wildcard aliases
|
||||
Alias existingAlias = getAliasList().getTalkgroupAlias(patchGroupID, false);
|
||||
|
||||
if(existingAlias instanceof PatchGroupAlias)
|
||||
{
|
||||
@@ -2928,6 +2928,8 @@ public class P25DecoderState extends DecoderState
|
||||
{
|
||||
patchGroupAlias = new PatchGroupAlias();
|
||||
|
||||
patchGroupAlias.addAliasID(new TalkgroupID(patchGroupID));
|
||||
|
||||
if(existingAlias != null)
|
||||
{
|
||||
getAliasList().removeAlias(existingAlias);
|
||||
@@ -2935,8 +2937,6 @@ public class P25DecoderState extends DecoderState
|
||||
patchGroupAlias.setPatchGroupAlias(existingAlias);
|
||||
}
|
||||
|
||||
patchGroupAlias.addAliasID(new TalkgroupID(patchGroupID));
|
||||
|
||||
getAliasList().addAlias(patchGroupAlias);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user