diff --git a/lib-ogc/swe-common-core/src/main/java/org/vast/data/DataBlockProxy.java b/lib-ogc/swe-common-core/src/main/java/org/vast/data/DataBlockProxy.java index 5eec998a7..79905ac38 100644 --- a/lib-ogc/swe-common-core/src/main/java/org/vast/data/DataBlockProxy.java +++ b/lib-ogc/swe-common-core/src/main/java/org/vast/data/DataBlockProxy.java @@ -191,7 +191,12 @@ else if (isAddMethod(method)) } // create new element data block - var newDblk = array.getElementType().createDataBlock(); + DataBlock newDblk; + if (args != null && args.length > 0 && args[0] instanceof IDataAccessor) { + newDblk = ((IDataAccessor)args[0]).getDataBlock(); + } else { + newDblk = array.getElementType().createDataBlock(); + } arrayData.add(newDblk); ((DataArrayImpl)array).updateSizeComponent(array.getComponentCount()+1); var parent = ((AbstractDataComponentImpl)array.getParent()); @@ -206,8 +211,7 @@ else if (isAddMethod(method)) accessor.wrap(newDblk); return accessor; } - else - { + else if(!(args[0] instanceof IDataAccessor)){ var argType = method.getParameters()[0].getType(); var val = args[0]; setDataValue(newDblk, argType, val);