Skip to content

Commit

Permalink
fixed missing methods for BigInteger Support
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Sep 13, 2018
1 parent 16fc039 commit 5c3a127
Show file tree
Hide file tree
Showing 7 changed files with 169 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Licensed to the Apache Software Foundation (ASF) under one
*/
package org.apache.plc4x.java.api.messages;

import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
Expand Down Expand Up @@ -78,6 +79,16 @@ public interface PlcReadResponse<T extends PlcReadRequest> extends PlcFieldRespo

Collection<Integer> getAllIntegers(String name);

boolean isValidBigInteger(String name);

boolean isValidBigInteger(String name, int index);

BigInteger getBigInteger(String name);

BigInteger getBigInteger(String name, int index);

Collection<BigInteger> getAllBigIntegers(String name);

boolean isValidLong(String name);

boolean isValidLong(String name, int index);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Licensed to the Apache Software Foundation (ASF) under one
import org.apache.plc4x.java.api.types.PlcResponseCode;
import org.apache.plc4x.java.base.messages.items.FieldItem;

import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
Expand Down Expand Up @@ -275,6 +276,48 @@ public Collection<Integer> getAllIntegers(String name) {
return null;
}

@Override
public boolean isValidBigInteger(String name) {
return isValidBigInteger(name, 0);
}

@Override
public boolean isValidBigInteger(String name, int index) {
FieldItem fieldInternal = getFieldInternal(name);
if (fieldInternal != null) {
return fieldInternal.isValidInteger(index);
}
return false;
}

@Override
public BigInteger getBigInteger(String name) {
return getBigInteger(name, 0);
}

@Override
public BigInteger getBigInteger(String name, int index) {
FieldItem fieldInternal = getFieldInternal(name);
if (fieldInternal != null) {
return fieldInternal.getBigInteger(index);
}
return null;
}

@Override
public Collection<BigInteger> getAllBigIntegers(String name) {
FieldItem fieldInternal = getFieldInternal(name);
if (fieldInternal != null) {
int num = fieldInternal.getNumValues();
List<BigInteger> values = new ArrayList<>(num);
for (int i = 0; i < num; i++) {
values.add(fieldInternal.getBigInteger(i));
}
return values;
}
return null;
}

@Override
public boolean isValidLong(String name) {
return isValidLong(name, 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Licensed to the Apache Software Foundation (ASF) under one
import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.api.types.PlcResponseCode;

import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
Expand Down Expand Up @@ -161,6 +162,31 @@ public Collection<Integer> getAllIntegers(String name) {
return null;
}

@Override
public boolean isValidBigInteger(String name) {
return false;
}

@Override
public boolean isValidBigInteger(String name, int index) {
return false;
}

@Override
public BigInteger getBigInteger(String name) {
return null;
}

@Override
public BigInteger getBigInteger(String name, int index) {
return null;
}

@Override
public Collection<BigInteger> getAllBigIntegers(String name) {
return null;
}

@Override
public boolean isValidLong(String name) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public boolean isValidByte(int index) {

@Override
public Byte getByte(int index) {
if(isValidByte(index)) {
if (isValidByte(index)) {
return getValue(index).byteValue();
}
return null;
Expand All @@ -69,7 +69,7 @@ public boolean isValidShort(int index) {

@Override
public Short getShort(int index) {
if(isValidShort(index)) {
if (isValidShort(index)) {
return getValue(index).shortValue();
}
return null;
Expand All @@ -84,13 +84,25 @@ public boolean isValidInteger(int index) {

@Override
public Integer getInteger(int index) {
if(isValidInteger(index)) {
if (isValidInteger(index)) {
BigInteger value = getValue(index);
return value.intValue();
}
return null;
}

public boolean isValidBigInteger(int index) {
BigInteger value = getValue(index);
return value != null;
}

public BigInteger getBigInteger(int index) {
if (isValidBigInteger(index)) {
return getValue(index);
}
return null;
}

@Override
public boolean isValidLong(int index) {
BigInteger value = getValue(index);
Expand All @@ -100,7 +112,7 @@ public boolean isValidLong(int index) {

@Override
public Long getLong(int index) {
if(isValidLong(index)) {
if (isValidLong(index)) {
BigInteger value = getValue(index);
return value.longValue();
}
Expand All @@ -120,7 +132,7 @@ public boolean isValidFloat(int index) {

@Override
public Float getFloat(int index) {
if(isValidFloat(index)) {
if (isValidFloat(index)) {
return getValue(index).floatValue();
}
return null;
Expand All @@ -139,7 +151,7 @@ public boolean isValidDouble(int index) {

@Override
public Double getDouble(int index) {
if(isValidDouble(index)) {
if (isValidDouble(index)) {
return getValue(index).doubleValue();
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Licensed to the Apache Software Foundation (ASF) under one
*/
package org.apache.plc4x.java.base.messages.items;

import java.math.BigInteger;

public class DefaultFloatingPointFieldItem extends FieldItem<Double> {

public DefaultFloatingPointFieldItem(Double... values) {
Expand Down Expand Up @@ -84,6 +86,18 @@ public Integer getInteger(int index) {
return null;
}

public boolean isValidBigInteger(int index) {
Double value = getValue(index);
return value != null;
}

public BigInteger getBigInteger(int index) {
if (isValidBigInteger(index)) {
return BigInteger.valueOf(getValue(index).longValue());
}
return null;
}

@Override
public boolean isValidLong(int index) {
Double value = getValue(index);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Licensed to the Apache Software Foundation (ASF) under one
*/
package org.apache.plc4x.java.base.messages.items;

import java.math.BigInteger;

public class DefaultIntegerFieldItem extends FieldItem<Long> {

public DefaultIntegerFieldItem(Long... values) {
Expand Down Expand Up @@ -50,7 +52,7 @@ public boolean isValidByte(int index) {

@Override
public Byte getByte(int index) {
if(isValidByte(index)) {
if (isValidByte(index)) {
return getValue(index).byteValue();
}
return null;
Expand All @@ -64,7 +66,7 @@ public boolean isValidShort(int index) {

@Override
public Short getShort(int index) {
if(isValidShort(index)) {
if (isValidShort(index)) {
return getValue(index).shortValue();
}
return null;
Expand All @@ -78,20 +80,32 @@ public boolean isValidInteger(int index) {

@Override
public Integer getInteger(int index) {
if(isValidInteger(index)) {
if (isValidInteger(index)) {
return getValue(index).intValue();
}
return null;
}

public boolean isValidBigInteger(int index) {
Long value = getValue(index);
return value != null;
}

public BigInteger getBigInteger(int index) {
if (isValidBigInteger(index)) {
return BigInteger.valueOf(getValue(index));
}
return null;
}

@Override
public boolean isValidLong(int index) {
return (getValue(index) != null);
}

@Override
public Long getLong(int index) {
if(isValidFloat(index)) {
if (isValidFloat(index)) {
return getValue(index);
}
return null;
Expand All @@ -105,7 +119,7 @@ public boolean isValidFloat(int index) {

@Override
public Float getFloat(int index) {
if(isValidFloat(index)) {
if (isValidFloat(index)) {
return getValue(index).floatValue();
}
return null;
Expand All @@ -119,7 +133,7 @@ public boolean isValidDouble(int index) {

@Override
public Double getDouble(int index) {
if(isValidDouble(index)) {
if (isValidDouble(index)) {
return getValue(index).doubleValue();
}
return null;
Expand Down
Loading

0 comments on commit 5c3a127

Please sign in to comment.