Make public fields final where possible

Class fields initialized via the constructor should be final.

Also mark leaking byte[] instances with a FIXME. API users consider them
immutable, but they are vulnerable to System.arrayCopy().

Also fixes constructor arguments so they do not use underscores, which
is prohibited by Java 9.

Change-Id: I393d55ed7234149cb3604bc92b2cb1d1207c55dc
Signed-off-by: Robert Varga <nite@hq.sk>
This commit is contained in:
Robert Varga
2016-01-31 12:25:45 +01:00
committed by Dave Wallace
parent 52a3a4de07
commit 004da76d2b
7 changed files with 92 additions and 90 deletions
@@ -15,12 +15,12 @@
package org.openvpp.vppjapi;
public class vppIPv4Address {
public int ip;
public byte prefixLength;
public final class vppIPv4Address {
public final int ip;
public final byte prefixLength;
public vppIPv4Address(int _ip, byte _prefixLength) {
ip = _ip;
prefixLength = _prefixLength;
public vppIPv4Address(int ip, byte prefixLength) {
this.ip = ip;
this.prefixLength = prefixLength;
}
}
@@ -16,8 +16,9 @@
package org.openvpp.vppjapi;
public class vppIPv6Address {
public byte[] ip;
public byte prefixLength;
// FIXME: this is dangerous
public final byte[] ip;
public final byte prefixLength;
public vppIPv6Address(byte[] _ip, byte _prefixLength) {
ip = _ip;
@@ -17,29 +17,29 @@ package org.openvpp.vppjapi;
public class vppInterfaceCounters {
public long rxOctets;
public long rxIp4;
public long rxIp6;
public long rxUnicast;
public long rxMulticast;
public long rxBroadcast;
public long rxDiscard;
public long rxFifoFull;
public long rxError;
public long rxUnknownProto;
public long rxMiss;
public final long rxOctets;
public final long rxIp4;
public final long rxIp6;
public final long rxUnicast;
public final long rxMulticast;
public final long rxBroadcast;
public final long rxDiscard;
public final long rxFifoFull;
public final long rxError;
public final long rxUnknownProto;
public final long rxMiss;
public long txOctets;
public long txIp4;
public long txIp6;
public long txUnicast;
public long txMulticast;
public long txBroadcast;
public long txDiscard;
public long txFifoFull;
public long txError;
public long txUnknownProto;
public long txMiss;
public final long txOctets;
public final long txIp4;
public final long txIp6;
public final long txUnicast;
public final long txMulticast;
public final long txBroadcast;
public final long txDiscard;
public final long txFifoFull;
public final long txError;
public final long txUnknownProto;
public final long txMiss;
public vppInterfaceCounters(
long rxOctets, long rxIp4, long rxIp6, long rxUni, long rxMulti,
@@ -15,28 +15,29 @@
package org.openvpp.vppjapi;
public class vppInterfaceDetails {
public int ifIndex;
public String interfaceName;
public int supIfIndex;
public byte[] physAddr;
public byte adminUp;
public byte linkUp;
public byte linkDuplex;
public byte linkSpeed;
public int subId;
public byte subDot1ad;
public byte subNumberOfTags;
public int subOuterVlanId;
public int subInnerVlanId;
public byte subExactMatch;
public byte subDefault;
public byte subOuterVlanIdAny;
public byte subInnerVlanIdAny;
public int vtrOp;
public int vtrPushDot1q;
public int vtrTag1;
public int vtrTag2;
public final class vppInterfaceDetails {
public final int ifIndex;
public final String interfaceName;
public final int supIfIndex;
// FIXME: this is dangerous
public final byte[] physAddr;
public final byte adminUp;
public final byte linkUp;
public final byte linkDuplex;
public final byte linkSpeed;
public final int subId;
public final byte subDot1ad;
public final byte subNumberOfTags;
public final int subOuterVlanId;
public final int subInnerVlanId;
public final byte subExactMatch;
public final byte subDefault;
public final byte subOuterVlanIdAny;
public final byte subInnerVlanIdAny;
public final int vtrOp;
public final int vtrPushDot1q;
public final int vtrTag1;
public final int vtrTag2;
public vppInterfaceDetails(int ifIndex, String interfaceName, int supIfIndex, byte[] physAddr, byte adminUp,
byte linkUp, byte linkDuplex, byte linkSpeed, int subId, byte subDot1ad, byte subNumberOfTags,
+15 -14
View File
@@ -15,20 +15,21 @@
package org.openvpp.vppjapi;
public class vppL2Fib {
public byte[] physAddress;
public boolean staticConfig;
public String outgoingInterface;
public boolean filter;
public boolean bridgedVirtualInterface;
public final class vppL2Fib {
// FIXME: this is dangerous
public final byte[] physAddress;
public final boolean staticConfig;
public final String outgoingInterface;
public final boolean filter;
public final boolean bridgedVirtualInterface;
public vppL2Fib(byte[] _physAddress, boolean _staticConfig,
String _outgoingInterface, boolean _filter,
boolean _bridgedVirtualInterface) {
physAddress = _physAddress;
staticConfig = _staticConfig;
outgoingInterface = _outgoingInterface;
filter = _filter;
bridgedVirtualInterface = _bridgedVirtualInterface;
public vppL2Fib(byte[] physAddress, boolean staticConfig,
String outgoingInterface, boolean filter,
boolean bridgedVirtualInterface) {
this.physAddress = physAddress;
this.staticConfig = staticConfig;
this.outgoingInterface = outgoingInterface;
this.filter = filter;
this.bridgedVirtualInterface = bridgedVirtualInterface;
}
}
@@ -15,18 +15,17 @@
package org.openvpp.vppjapi;
public class vppVersion {
public String programName;
public String buildDirectory;
public String gitBranch;
public String buildDate;
public final class vppVersion {
public final String programName;
public final String buildDirectory;
public final String gitBranch;
public final String buildDate;
public vppVersion(String _progName, String _buildDir, String _gitBranch, String _buildDate)
{
programName = _progName;
buildDirectory = _buildDir;
gitBranch = _gitBranch;
buildDate = _buildDate;
public vppVersion(String progName, String buildDir, String gitBranch, String buildDate) {
this.programName = progName;
this.buildDirectory = buildDir;
this.gitBranch = gitBranch;
this.buildDate = buildDate;
}
}
@@ -15,19 +15,19 @@
package org.openvpp.vppjapi;
public class vppVxlanTunnelDetails {
public int srcAddress;
public int dstAddress;
public int encapVrfId;
public int vni;
public int decap_next_index;
public final class vppVxlanTunnelDetails {
public final int srcAddress;
public final int dstAddress;
public final int encapVrfId;
public final int vni;
public final int decapNextIndex;
public vppVxlanTunnelDetails(int _srcAddress, int _dstAddress,
int _encapVrfId, int _vni, int _decap_next_index) {
srcAddress = _srcAddress;
dstAddress = _dstAddress;
encapVrfId = _encapVrfId;
vni = _vni;
decap_next_index = _decap_next_index;
public vppVxlanTunnelDetails(int srcAddress, int dstAddress,
int encapVrfId, int vni, int decapNextIndex) {
this.srcAddress = srcAddress;
this.dstAddress = dstAddress;
this.encapVrfId = encapVrfId;
this.vni = vni;
this.decapNextIndex = decapNextIndex;
}
}