Skip to content

Commit c0c9272

Browse files
committed
Adding support for Numerical lists with unsigned support
Adding getter and putter for ListNumber on PVDoubleArray Adding ListNumber support for PVIntArray and PVNumberArray superclass. Integrated ListNumber support into signed numeric arrays. Adding unsigned array support Renamed XxxIntYyy to XxxIntegerYyy so it better follows Java conventions
1 parent dd1933e commit c0c9272

30 files changed

Lines changed: 485 additions & 43 deletions

pvDataJava/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,17 @@
4242
<connection>https://github.com/epics-base/pvDataJava</connection>
4343
<developerConnection>https://github.com/epics-base/pvDataJava</developerConnection>
4444
</scm>
45+
<dependencies>
46+
<dependency>
47+
<groupId>${project.groupId}</groupId>
48+
<artifactId>epics-util</artifactId>
49+
<version>1.0.0-SNAPSHOT</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>org.hamcrest</groupId>
53+
<artifactId>hamcrest-all</artifactId>
54+
<version>1.3</version>
55+
<scope>test</scope>
56+
</dependency>
57+
</dependencies>
4558
</project>

pvDataJava/src/org/epics/pvdata/copy/package.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@
1818
</dd>
1919
</dl>
2020

21+
22+
</p>
2123
</body>
2224
</html>

pvDataJava/src/org/epics/pvdata/factory/AbstractPVArray.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import org.epics.pvdata.pv.ArrayData;
1111
import org.epics.pvdata.pv.PVArray;
1212
import org.epics.pvdata.pv.SerializableControl;
13+
import org.epics.util.array.CollectionNumbers;
14+
import org.epics.util.array.ListNumber;
1315

1416
/**
1517
* Abstract base class for any PVArray field.
@@ -116,6 +118,22 @@ protected int internalPut(int offset, int len, Object from, int fromOffset) {
116118
return len;
117119
}
118120

121+
public void put(int offset, ListNumber list) {
122+
if (super.isImmutable())
123+
throw new IllegalStateException("field is immutable");
124+
125+
int newLength = offset + list.size();
126+
if (newLength > length)
127+
{
128+
checkLength(newLength);
129+
setCapacity(newLength);
130+
length = newLength;
131+
}
132+
133+
CollectionNumbers.toList(getValue()).setAll(offset, list);
134+
super.postPut();
135+
}
136+
119137
private void checkLength(int len)
120138
{
121139
Array.ArraySizeType type = getArray().getArraySizeType();

pvDataJava/src/org/epics/pvdata/factory/BasePVByteArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.PVByteArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayByte;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -71,6 +73,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7173
public int get(int offset, int len, ByteArrayData data) {
7274
return internalGet(offset, len, data);
7375
}
76+
77+
@Override
78+
public ArrayByte get() {
79+
return CollectionNumbers.unmodifiableListByte(value);
80+
}
7481

7582
/* (non-Javadoc)
7683
* @see org.epics.pvdata.pv.PVByteArray#put(int, int, byte[], int)

pvDataJava/src/org/epics/pvdata/factory/BasePVDoubleArray.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import org.epics.pvdata.pv.PVDoubleArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayDouble;
16+
import org.epics.util.array.CollectionNumbers;
17+
import org.epics.util.array.ListNumber;
1518

1619

1720
/**
@@ -73,6 +76,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7376
public int get(int offset, int len, DoubleArrayData data) {
7477
return internalGet(offset, len, data);
7578
}
79+
80+
@Override
81+
public ArrayDouble get() {
82+
return CollectionNumbers.unmodifiableListDouble(value);
83+
}
7684

7785
/* (non-Javadoc)
7886
* @see org.epics.pvdata.pv.PVDoubleArray#put(int, int, double[], int)
@@ -82,7 +90,6 @@ public int put(int offset, int len, double[] from, int fromOffset) {
8290
return internalPut(offset, len, from, fromOffset);
8391
}
8492

85-
8693
/* (non-Javadoc)
8794
* @see org.epics.pvdata.pv.PVDoubleArray#shareData(double[])
8895
*/

pvDataJava/src/org/epics/pvdata/factory/BasePVFloatArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.PVFloatArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayFloat;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -73,6 +75,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7375
public int get(int offset, int len, FloatArrayData data) {
7476
return internalGet(offset, len, data);
7577
}
78+
79+
@Override
80+
public ArrayFloat get() {
81+
return CollectionNumbers.unmodifiableListFloat(value);
82+
}
7683

7784
/* (non-Javadoc)
7885
* @see org.epics.pvdata.pv.PVFloatArray#put(int, int, float[], int)

pvDataJava/src/org/epics/pvdata/factory/BasePVIntArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.PVIntArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayInteger;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -73,6 +75,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7375
public int get(int offset, int len, IntArrayData data) {
7476
return internalGet(offset, len, data);
7577
}
78+
79+
@Override
80+
public ArrayInteger get() {
81+
return CollectionNumbers.unmodifiableListInt(value);
82+
}
7683

7784
/* (non-Javadoc)
7885
* @see org.epics.pvdata.pv.PVIntArray#put(int, int, int[], int)

pvDataJava/src/org/epics/pvdata/factory/BasePVLongArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.PVLongArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayLong;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -73,6 +75,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7375
public int get(int offset, int len, LongArrayData data) {
7476
return internalGet(offset, len, data);
7577
}
78+
79+
@Override
80+
public ArrayLong get() {
81+
return CollectionNumbers.unmodifiableListLong(value);
82+
}
7683

7784
/* (non-Javadoc)
7885
* @see org.epics.pvdata.pv.PVLongArray#put(int, int, long[], int)

pvDataJava/src/org/epics/pvdata/factory/BasePVShortArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.ScalarArray;
1313
import org.epics.pvdata.pv.SerializableControl;
1414
import org.epics.pvdata.pv.ShortArrayData;
15+
import org.epics.util.array.ArrayShort;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -73,6 +75,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7375
public int get(int offset, int len, ShortArrayData data) {
7476
return internalGet(offset, len, data);
7577
}
78+
79+
@Override
80+
public ArrayShort get() {
81+
return CollectionNumbers.unmodifiableListShort(value);
82+
}
7683

7784
/* (non-Javadoc)
7885
* @see org.epics.pvdata.pv.PVShortArray#put(int, int, short[], int)

pvDataJava/src/org/epics/pvdata/factory/BasePVUByteArray.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.epics.pvdata.pv.PVUByteArray;
1313
import org.epics.pvdata.pv.ScalarArray;
1414
import org.epics.pvdata.pv.SerializableControl;
15+
import org.epics.util.array.ArrayUByte;
16+
import org.epics.util.array.CollectionNumbers;
1517

1618

1719
/**
@@ -71,6 +73,11 @@ protected int getFromBuffer(ByteBuffer buffer, DeserializableControl control, in
7173
public int get(int offset, int len, ByteArrayData data) {
7274
return internalGet(offset, len, data);
7375
}
76+
77+
@Override
78+
public ArrayUByte get() {
79+
return CollectionNumbers.unmodifiableListUByte(value);
80+
}
7481

7582
/* (non-Javadoc)
7683
* @see org.epics.pvdata.pv.PVUByteArray#put(int, int, byte[], int)

0 commit comments

Comments
 (0)