339 lines
13 KiB
Java
339 lines
13 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* com.tridium.bql.util.BDynamicTimeRange
|
|
* javax.baja.collection.BICollection
|
|
* javax.baja.data.BIDataValue
|
|
* javax.baja.log.Log
|
|
* javax.baja.naming.BOrd
|
|
* javax.baja.naming.SlotPath
|
|
* javax.baja.nre.util.Array
|
|
* javax.baja.security.BIProtected
|
|
* javax.baja.security.BPermissions
|
|
* javax.baja.security.PermissionException
|
|
* javax.baja.sys.BBoolean
|
|
* javax.baja.sys.BFacets
|
|
* javax.baja.sys.BIcon
|
|
* javax.baja.sys.BObject
|
|
* javax.baja.sys.BValue
|
|
* javax.baja.sys.Context
|
|
* javax.baja.sys.Cursor
|
|
* javax.baja.sys.Property
|
|
* javax.baja.sys.Sys
|
|
* javax.baja.sys.Type
|
|
* javax.baja.user.BUser
|
|
* javax.baja.user.BUserService
|
|
*/
|
|
package com.tridium.alarm;
|
|
|
|
import com.tridium.alarm.AlarmsToSourcesCursor;
|
|
import com.tridium.alarm.BAlarmConsoleChannel;
|
|
import com.tridium.bql.util.BDynamicTimeRange;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import javax.baja.alarm.BAlarmClass;
|
|
import javax.baja.alarm.BAlarmRecipient;
|
|
import javax.baja.alarm.BAlarmRecord;
|
|
import javax.baja.alarm.BAlarmService;
|
|
import javax.baja.alarm.BAlarmTransitionBits;
|
|
import javax.baja.collection.BICollection;
|
|
import javax.baja.data.BIDataValue;
|
|
import javax.baja.log.Log;
|
|
import javax.baja.naming.BOrd;
|
|
import javax.baja.naming.SlotPath;
|
|
import javax.baja.nre.util.Array;
|
|
import javax.baja.security.BIProtected;
|
|
import javax.baja.security.BPermissions;
|
|
import javax.baja.security.PermissionException;
|
|
import javax.baja.sys.BBoolean;
|
|
import javax.baja.sys.BFacets;
|
|
import javax.baja.sys.BIcon;
|
|
import javax.baja.sys.BObject;
|
|
import javax.baja.sys.BValue;
|
|
import javax.baja.sys.Context;
|
|
import javax.baja.sys.Cursor;
|
|
import javax.baja.sys.Property;
|
|
import javax.baja.sys.Sys;
|
|
import javax.baja.sys.Type;
|
|
import javax.baja.user.BUser;
|
|
import javax.baja.user.BUserService;
|
|
|
|
/*
|
|
* Illegal identifiers - consider using --renameillegalidents true
|
|
*/
|
|
public class BConsoleRecipient
|
|
extends BAlarmRecipient {
|
|
public static final Property transitions = BConsoleRecipient.newProperty((int)0, (BValue)BAlarmTransitionBits.ALL, (BFacets)BFacets.make((String[])new String[]{"showNormal"}, (BIDataValue[])new BBoolean[]{BBoolean.FALSE}));
|
|
public static final Property routeAcks = BConsoleRecipient.newProperty((int)1, (boolean)true, null);
|
|
public static final Property defaultTimeRange = BConsoleRecipient.newProperty((int)0, (BValue)BDynamicTimeRange.DEFAULT, null);
|
|
public static final Type TYPE;
|
|
public static final Log logger;
|
|
private static final BIcon icon;
|
|
Array channels;
|
|
private Map channelUsageCounts;
|
|
static /* synthetic */ Class class$com$tridium$alarm$BConsoleRecipient;
|
|
static /* synthetic */ Class class$com$tridium$alarm$BAlarmConsoleChannel;
|
|
static /* synthetic */ Class class$javax$baja$user$BUser;
|
|
|
|
public BAlarmTransitionBits getTransitions() {
|
|
return (BAlarmTransitionBits)this.get(transitions);
|
|
}
|
|
|
|
public void setTransitions(BAlarmTransitionBits bAlarmTransitionBits) {
|
|
this.set(transitions, (BValue)bAlarmTransitionBits, null);
|
|
}
|
|
|
|
public boolean getRouteAcks() {
|
|
return this.getBoolean(routeAcks);
|
|
}
|
|
|
|
public void setRouteAcks(boolean bl) {
|
|
this.setBoolean(routeAcks, bl, null);
|
|
}
|
|
|
|
public BDynamicTimeRange getDefaultTimeRange() {
|
|
return (BDynamicTimeRange)this.get(defaultTimeRange);
|
|
}
|
|
|
|
public void setDefaultTimeRange(BDynamicTimeRange bDynamicTimeRange) {
|
|
this.set(defaultTimeRange, (BValue)bDynamicTimeRange, null);
|
|
}
|
|
|
|
public Type getType() {
|
|
return TYPE;
|
|
}
|
|
|
|
public void handleAlarm(BAlarmRecord bAlarmRecord) {
|
|
logger.trace("BConsoleRecipient.handleAlarm: " + (Object)((Object)bAlarmRecord.getSourceState()));
|
|
int n = 0;
|
|
while (n < this.channels.size()) {
|
|
try {
|
|
BAlarmConsoleChannel bAlarmConsoleChannel = (BAlarmConsoleChannel)((Object)this.channels.get(n));
|
|
bAlarmConsoleChannel.newAlarm(this, bAlarmRecord);
|
|
}
|
|
catch (PermissionException permissionException) {
|
|
}
|
|
catch (Exception exception) {}
|
|
++n;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
* Enabled aggressive block sorting
|
|
* Enabled unnecessary exception pruning
|
|
* Enabled aggressive exception aggregation
|
|
*/
|
|
public void registerAlarmChannel(BAlarmConsoleChannel bAlarmConsoleChannel) {
|
|
block6: {
|
|
Map map = this.channelUsageCounts;
|
|
synchronized (map) {
|
|
Integer n;
|
|
block5: {
|
|
n = (Integer)this.channelUsageCounts.get((Object)bAlarmConsoleChannel);
|
|
if (n != null) break block5;
|
|
this.channelUsageCounts.put(bAlarmConsoleChannel, new Integer(1));
|
|
break block6;
|
|
}
|
|
n = new Integer(n + 1);
|
|
this.channelUsageCounts.put(bAlarmConsoleChannel, n);
|
|
}
|
|
}
|
|
if (this.channels.contains((Object)bAlarmConsoleChannel)) return;
|
|
this.channels.add((Object)bAlarmConsoleChannel);
|
|
try {
|
|
bAlarmConsoleChannel.startWorker();
|
|
return;
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
* Enabled aggressive block sorting
|
|
* Enabled unnecessary exception pruning
|
|
* Enabled aggressive exception aggregation
|
|
*/
|
|
public void unregisterAlarmChannel(BAlarmConsoleChannel bAlarmConsoleChannel) {
|
|
try {
|
|
Map map = this.channelUsageCounts;
|
|
synchronized (map) {
|
|
block6: {
|
|
Integer n;
|
|
block5: {
|
|
n = (Integer)this.channelUsageCounts.get((Object)bAlarmConsoleChannel);
|
|
if (n == null) return;
|
|
if ((n = new Integer(n - 1)) != 0) break block5;
|
|
this.channelUsageCounts.remove((Object)bAlarmConsoleChannel);
|
|
this.channels.remove((Object)bAlarmConsoleChannel);
|
|
bAlarmConsoleChannel.stopWorker();
|
|
break block6;
|
|
}
|
|
this.channelUsageCounts.put(bAlarmConsoleChannel, n);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public Cursor getOpenAlarmSources(Context context) {
|
|
return new AlarmsToSourcesCursor(this.getOpenAlarms(context));
|
|
}
|
|
|
|
public Cursor getOpenAlarms(Context context) {
|
|
String string = this.getInitialAlarmQuery(context);
|
|
return ((BICollection)BOrd.make((String)string).resolve((BObject)this).get()).cursor();
|
|
}
|
|
|
|
public String getInitialAlarmQuery(Context context) {
|
|
BUserService bUserService;
|
|
BUser bUser = null;
|
|
if (context != null) {
|
|
bUser = context.getUser();
|
|
}
|
|
if (bUser == null && !(bUser = (bUserService = (BUserService)Sys.getService((Type)BUserService.TYPE)).getAdmin()).getEnabled()) {
|
|
Class clazz = class$javax$baja$user$BUser;
|
|
if (clazz == null) {
|
|
clazz = class$javax$baja$user$BUser = BConsoleRecipient.class("[Ljavax.baja.user.BUser;", false);
|
|
}
|
|
BUser[] bUserArray = (BUser[])bUserService.getChildren(clazz);
|
|
int n = 0;
|
|
while (n < bUserArray.length) {
|
|
if (bUserArray[n].getEnabled() && bUserArray[n].getPermissions().isSuperUser()) {
|
|
bUser = bUserArray[n];
|
|
break;
|
|
}
|
|
++n;
|
|
}
|
|
}
|
|
return this.getInitialAlarmQuery(bUser);
|
|
}
|
|
|
|
public String getInitialAlarmQuery(BUser bUser) {
|
|
String string;
|
|
BAlarmService bAlarmService = (BAlarmService)Sys.getService((Type)BAlarmService.TYPE);
|
|
String[] stringArray = this.getSubscribedAlarmClasses();
|
|
StringBuffer stringBuffer = new StringBuffer("alarm:|bql:select * from openAlarms");
|
|
int n = 0;
|
|
StringBuffer stringBuffer2 = new StringBuffer();
|
|
int n2 = 0;
|
|
while (n2 < stringArray.length) {
|
|
try {
|
|
string = stringArray[n2];
|
|
bUser.check((BIProtected)bAlarmService.lookupAlarmClass(string), BPermissions.operatorRead);
|
|
if (n > 0) {
|
|
stringBuffer2.append(" or ");
|
|
} else {
|
|
stringBuffer2.append("(");
|
|
}
|
|
++n;
|
|
stringBuffer2.append("alarmClass = '" + SlotPath.escape((String)string) + '\'');
|
|
}
|
|
catch (PermissionException permissionException) {}
|
|
++n2;
|
|
}
|
|
if (n > 0) {
|
|
stringBuffer2.append(")");
|
|
}
|
|
stringArray = this.getSubscribedEscalatedAlarmClasses(1);
|
|
n2 = 0;
|
|
while (n2 < stringArray.length) {
|
|
try {
|
|
string = stringArray[n2];
|
|
bUser.check((BIProtected)bAlarmService.lookupAlarmClass(string), BPermissions.operatorRead);
|
|
if (n > 0) {
|
|
stringBuffer2.append(" or ");
|
|
}
|
|
stringBuffer2.append("(alarmClass = '" + SlotPath.escape((String)string) + "' and (alarmData." + BAlarmClass.ESCALATED + " != null and alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_3 + "' or alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_2 + "' or alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_1 + "'))");
|
|
++n;
|
|
}
|
|
catch (PermissionException permissionException) {}
|
|
++n2;
|
|
}
|
|
stringArray = this.getSubscribedEscalatedAlarmClasses(2);
|
|
n2 = 0;
|
|
while (n2 < stringArray.length) {
|
|
try {
|
|
string = stringArray[n2];
|
|
bUser.check((BIProtected)bAlarmService.lookupAlarmClass(string), BPermissions.operatorRead);
|
|
if (n > 0) {
|
|
stringBuffer2.append(" or ");
|
|
}
|
|
stringBuffer2.append("(alarmClass = '" + SlotPath.escape((String)string) + "' and (alarmData." + BAlarmClass.ESCALATED + " != null and alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_3 + "' or alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_2 + "'))");
|
|
++n;
|
|
}
|
|
catch (PermissionException permissionException) {}
|
|
++n2;
|
|
}
|
|
stringArray = this.getSubscribedEscalatedAlarmClasses(3);
|
|
n2 = 0;
|
|
while (n2 < stringArray.length) {
|
|
try {
|
|
string = stringArray[n2];
|
|
bUser.check((BIProtected)bAlarmService.lookupAlarmClass(string), BPermissions.operatorRead);
|
|
if (n > 0) {
|
|
stringBuffer2.append(" or ");
|
|
}
|
|
stringBuffer2.append("(alarmClass = '" + SlotPath.escape((String)string) + "' and alarmData." + BAlarmClass.ESCALATED + " != null and alarmData." + BAlarmClass.ESCALATED + " = '" + BAlarmClass.LEVEL_3 + "')");
|
|
++n;
|
|
}
|
|
catch (PermissionException permissionException) {}
|
|
++n2;
|
|
}
|
|
if (stringBuffer2.length() > 0) {
|
|
stringBuffer.append(" where (");
|
|
stringBuffer.append(stringBuffer2.toString() + ')');
|
|
} else {
|
|
stringBuffer.append(" where alarmClass = 'null'");
|
|
}
|
|
return stringBuffer.toString();
|
|
}
|
|
|
|
public BIcon getIcon() {
|
|
return icon;
|
|
}
|
|
|
|
static /* synthetic */ Class class(String string, boolean bl) {
|
|
try {
|
|
Class<?> clazz = Class.forName(string);
|
|
if (!bl) {
|
|
clazz = clazz.getComponentType();
|
|
}
|
|
return clazz;
|
|
}
|
|
catch (ClassNotFoundException classNotFoundException) {
|
|
throw new NoClassDefFoundError(classNotFoundException.getMessage());
|
|
}
|
|
}
|
|
|
|
private final /* synthetic */ void this() {
|
|
Class clazz = class$com$tridium$alarm$BAlarmConsoleChannel;
|
|
if (clazz == null) {
|
|
clazz = class$com$tridium$alarm$BAlarmConsoleChannel = BConsoleRecipient.class("[Lcom.tridium.alarm.BAlarmConsoleChannel;", false);
|
|
}
|
|
this.channels = new Array(clazz);
|
|
this.channelUsageCounts = new HashMap();
|
|
}
|
|
|
|
public BConsoleRecipient() {
|
|
this.this();
|
|
}
|
|
|
|
static {
|
|
Class clazz = class$com$tridium$alarm$BConsoleRecipient;
|
|
if (clazz == null) {
|
|
clazz = class$com$tridium$alarm$BConsoleRecipient = BConsoleRecipient.class("[Lcom.tridium.alarm.BConsoleRecipient;", false);
|
|
}
|
|
TYPE = Sys.loadType((Class)clazz);
|
|
logger = Log.getLog((String)"alarm");
|
|
icon = BIcon.make((BIcon)BIcon.std((String)"computer.png"), (BIcon)BIcon.std((String)"badges/alarm.png"));
|
|
}
|
|
}
|
|
|