diff --git a/src/main/java/com/beanit/iec61850bean/FcModelNode.java b/src/main/java/com/beanit/iec61850bean/FcModelNode.java
index aa6ae9c..1447f4d 100644
--- a/src/main/java/com/beanit/iec61850bean/FcModelNode.java
+++ b/src/main/java/com/beanit/iec61850bean/FcModelNode.java
@@ -76,7 +76,7 @@ public abstract class FcModelNode extends ModelNode {
}
class SelectResetTask extends TimerTask {
- ServerAssociation association;
+ final ServerAssociation association;
SelectResetTask(ServerAssociation association) {
this.association = association;
diff --git a/src/main/java/com/beanit/iec61850bean/Report.java b/src/main/java/com/beanit/iec61850bean/Report.java
index 80f1c42..038cf29 100644
--- a/src/main/java/com/beanit/iec61850bean/Report.java
+++ b/src/main/java/com/beanit/iec61850bean/Report.java
@@ -14,6 +14,7 @@
package com.beanit.iec61850bean;
import com.beanit.iec61850bean.internal.HexString;
+
import java.util.List;
public class Report {
@@ -172,7 +173,7 @@ public class Report {
sb.append("\nEntry ID: ").append(HexString.fromBytes(entryId.getValue()));
}
if (confRev != null) {
- sb.append("\nConfiguration revision: ").append(confRev.toString());
+ sb.append("\nConfiguration revision: ").append(confRev);
}
sb.append("\nReported data set members:");
int index = 0;
diff --git a/src/main/java/com/beanit/iec61850bean/ServerAssociation.java b/src/main/java/com/beanit/iec61850bean/ServerAssociation.java
index dde88d3..e10e5a3 100644
--- a/src/main/java/com/beanit/iec61850bean/ServerAssociation.java
+++ b/src/main/java/com/beanit/iec61850bean/ServerAssociation.java
@@ -13,84 +13,45 @@
*/
package com.beanit.iec61850bean;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
import com.beanit.asn1bean.ber.ReverseByteArrayOutputStream;
import com.beanit.asn1bean.ber.types.BerInteger;
import com.beanit.asn1bean.ber.types.BerNull;
import com.beanit.asn1bean.ber.types.string.BerVisibleString;
import com.beanit.iec61850bean.internal.BerBoolean;
import com.beanit.iec61850bean.internal.NamedThreadFactory;
-import com.beanit.iec61850bean.internal.mms.asn1.AccessResult;
-import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedErrorPDU;
-import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedRequestPDU;
-import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedResponsePDU;
-import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedServiceRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.ConfirmedServiceResponse;
-import com.beanit.iec61850bean.internal.mms.asn1.Data;
-import com.beanit.iec61850bean.internal.mms.asn1.DataAccessError;
-import com.beanit.iec61850bean.internal.mms.asn1.DefineNamedVariableListRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.DefineNamedVariableListResponse;
-import com.beanit.iec61850bean.internal.mms.asn1.DeleteNamedVariableListRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.DeleteNamedVariableListResponse;
-import com.beanit.iec61850bean.internal.mms.asn1.GetNameListRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.GetNameListResponse;
+import com.beanit.iec61850bean.internal.mms.asn1.*;
import com.beanit.iec61850bean.internal.mms.asn1.GetNameListResponse.ListOfIdentifier;
-import com.beanit.iec61850bean.internal.mms.asn1.GetNamedVariableListAttributesResponse;
-import com.beanit.iec61850bean.internal.mms.asn1.GetVariableAccessAttributesRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.GetVariableAccessAttributesResponse;
-import com.beanit.iec61850bean.internal.mms.asn1.Identifier;
-import com.beanit.iec61850bean.internal.mms.asn1.InitiateRequestPDU;
-import com.beanit.iec61850bean.internal.mms.asn1.InitiateResponsePDU;
-import com.beanit.iec61850bean.internal.mms.asn1.Integer16;
-import com.beanit.iec61850bean.internal.mms.asn1.Integer32;
-import com.beanit.iec61850bean.internal.mms.asn1.Integer8;
-import com.beanit.iec61850bean.internal.mms.asn1.MMSpdu;
-import com.beanit.iec61850bean.internal.mms.asn1.ObjectName;
import com.beanit.iec61850bean.internal.mms.asn1.ObjectName.DomainSpecific;
-import com.beanit.iec61850bean.internal.mms.asn1.ParameterSupportOptions;
-import com.beanit.iec61850bean.internal.mms.asn1.ReadRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.ReadResponse;
import com.beanit.iec61850bean.internal.mms.asn1.ReadResponse.ListOfAccessResult;
import com.beanit.iec61850bean.internal.mms.asn1.ServiceError.ErrorClass;
-import com.beanit.iec61850bean.internal.mms.asn1.ServiceSupportOptions;
-import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription;
import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure;
import com.beanit.iec61850bean.internal.mms.asn1.TypeDescription.Structure.Components;
-import com.beanit.iec61850bean.internal.mms.asn1.TypeSpecification;
-import com.beanit.iec61850bean.internal.mms.asn1.Unsigned32;
-import com.beanit.iec61850bean.internal.mms.asn1.VariableAccessSpecification;
-import com.beanit.iec61850bean.internal.mms.asn1.VariableDefs;
-import com.beanit.iec61850bean.internal.mms.asn1.WriteRequest;
-import com.beanit.iec61850bean.internal.mms.asn1.WriteResponse;
import com.beanit.josistack.AcseAssociation;
import com.beanit.josistack.ByteBufferInputStream;
import com.beanit.josistack.DecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.io.ByteArrayInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.SocketTimeoutException;
import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
+import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeoutException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
final class ServerAssociation {
private static final Logger logger = LoggerFactory.getLogger(ServerAssociation.class);
private static final WriteResponse.CHOICE writeSuccess = new WriteResponse.CHOICE();
- private static String[] mmsFcs = {
- "MX", "ST", "CO", "CF", "DC", "SP", "SG", "RP", "LG", "BR", "GO", "GS", "SV", "SE", "EX", "SR",
- "OR", "BL"
+ private static final String[] mmsFcs = {
+ "MX", "ST", "CO", "CF", "DC", "SP", "SG", "RP", "LG", "BR", "GO", "GS", "SV", "SE", "EX", "SR",
+ "OR", "BL"
};
static {
diff --git a/src/main/java/com/beanit/iec61850bean/ServerSap.java b/src/main/java/com/beanit/iec61850bean/ServerSap.java
index 722de00..e1aa9a2 100644
--- a/src/main/java/com/beanit/iec61850bean/ServerSap.java
+++ b/src/main/java/com/beanit/iec61850bean/ServerSap.java
@@ -15,13 +15,14 @@ package com.beanit.iec61850bean;
import com.beanit.josistack.AcseAssociation;
import com.beanit.josistack.ServerAcseSap;
+
+import javax.net.ServerSocketFactory;
import java.io.IOException;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
-import javax.net.ServerSocketFactory;
/**
* The ServerSap class represents the IEC 61850 service access point for server
@@ -340,11 +341,7 @@ public final class ServerSap {
bdaMirror.setValueFrom(bda);
synchronized (bdaMirror.chgRcbs) {
for (Urcb urcb : bdaMirror.chgRcbs) {
- if (bdaMirror.dupd && urcb.getTrgOps().isDataUpdate()) {
- urcb.report(bdaMirror, true, false, true);
- } else {
- urcb.report(bdaMirror, true, false, false);
- }
+ urcb.report(bdaMirror, true, false, bdaMirror.dupd && urcb.getTrgOps().isDataUpdate());
}
}
} else if (bdaMirror.dupd && bdaMirror.dupdRcbs.size() != 0) {
diff --git a/src/main/java/com/beanit/iec61850bean/clientgui/ClientGui.java b/src/main/java/com/beanit/iec61850bean/clientgui/ClientGui.java
index a981eca..dc21245 100644
--- a/src/main/java/com/beanit/iec61850bean/clientgui/ClientGui.java
+++ b/src/main/java/com/beanit/iec61850bean/clientgui/ClientGui.java
@@ -18,11 +18,13 @@ import com.beanit.iec61850bean.ClientSap;
import com.beanit.iec61850bean.ServerModel;
import com.beanit.iec61850bean.ServiceError;
import com.beanit.iec61850bean.clientgui.util.Counter;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
+
+import javax.swing.*;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
@@ -32,23 +34,6 @@ import java.io.InputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSeparator;
-import javax.swing.JTextField;
-import javax.swing.JTree;
-import javax.swing.ToolTipManager;
-import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
public class ClientGui extends JFrame implements ActionListener, TreeSelectionListener {
@@ -416,7 +401,7 @@ public class ClientGui extends JFrame implements ActionListener, TreeSelectionLi
for (int i = 0; i < node.getChildCount(); i++) {
y.increment();
DataObjectTreeNode childNode = (DataObjectTreeNode) node.getChildAt(i);
- showDataDetails(childNode, pre + "." + childNode.toString(), y);
+ showDataDetails(childNode, pre + "." + childNode, y);
detailsPanel.add(new JSeparator());
addDetailsComponent(new JSeparator(), 0, y.getValue(), 3, 1, 1, 0);
}
diff --git a/src/main/java/com/beanit/iec61850bean/internal/scl/DoType.java b/src/main/java/com/beanit/iec61850bean/internal/scl/DoType.java
index 81ee192..0a0a567 100644
--- a/src/main/java/com/beanit/iec61850bean/internal/scl/DoType.java
+++ b/src/main/java/com/beanit/iec61850bean/internal/scl/DoType.java
@@ -27,7 +27,7 @@ public final class DoType extends AbstractType {
public List das = new ArrayList<>();
public List sdos = new ArrayList<>();
- private String cdc;
+ private final String cdc;
public DoType(Node xmlNode) throws SclParseException {
diff --git a/src/main/java/com/beanit/iec61850bean/internal/scl/EnumVal.java b/src/main/java/com/beanit/iec61850bean/internal/scl/EnumVal.java
index 6be1024..1bcb476 100644
--- a/src/main/java/com/beanit/iec61850bean/internal/scl/EnumVal.java
+++ b/src/main/java/com/beanit/iec61850bean/internal/scl/EnumVal.java
@@ -20,7 +20,7 @@ import org.w3c.dom.Node;
public final class EnumVal {
private final String id;
- private int ord;
+ private final int ord;
public EnumVal(String id, int ord) {
this.id = id;
diff --git a/src/main/java/com/beanit/jositransport/TConnection.java b/src/main/java/com/beanit/jositransport/TConnection.java
index 8cd6e71..97f628c 100644
--- a/src/main/java/com/beanit/jositransport/TConnection.java
+++ b/src/main/java/com/beanit/jositransport/TConnection.java
@@ -14,12 +14,8 @@
package com.beanit.jositransport;
import com.beanit.iec61850bean.internal.util.SequenceNumber;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
+
+import java.io.*;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.nio.ByteBuffer;
@@ -37,7 +33,7 @@ public final class TConnection {
private final ServerThread serverThread;
public byte[] tSelRemote = null;
public byte[] tSelLocal = null;
- private int srcRef;
+ private final int srcRef;
private int dstRef;
private int maxTPduSizeParam;
private int maxTPduSize;