@Override
    public void updateValue(final AttributeValue inValue) throws DevFailed {
        xlogger.entry(getName());
        // final Profiler profilerPeriod = new Profiler("read attribute " + name);
        // profilerPeriod.start("in");
        if (inValue == null) {
            throw DevFailedUtils.newDevFailed(ExceptionMessages.ATTR_VALUE_NOT_SET,
                    name + " read value has not been updated");
        }

        try {
            // copy value
            readValue = (AttributeValue) inValue.clone();
        } catch (final CloneNotSupportedException e) {
            throw DevFailedUtils.newDevFailed(e);
        }

        // update quality if necessary
        if (readValue.getValue() != null && !readValue.getQuality().equals(AttrQuality.ATTR_INVALID)) {
            updateQuality(readValue);
        }
        // profilerPeriod.start("clone");

        // profilerPeriod.stop().print();
        try {
            if (readValue.getValue() != null) {
                // profilerPeriod.start("checkUpdateErrors");
                checkUpdateErrors(readValue);
                // profilerPeriod.start("from2DArrayToArray");
                // get as array if necessary (for image)
                readValue.setValueWithoutDim(ArrayUtils.from2DArrayToArray(readValue.getValue()));
                // force conversion to check types
                // profilerPeriod.start("toAttributeValue5");
                TangoIDLAttributeUtil.toAttributeValue5(this, readValue, null);
            } else {
                throw DevFailedUtils.newDevFailed(ExceptionMessages.ATTR_VALUE_NOT_SET,
                        name + " read value has not been updated");
            }
            // profilerPeriod.start("updateDefaultWritePart");
            updateDefaultWritePart();
            // profilerPeriod.stop().print();

        } catch (final DevFailed e) {
            // readValue.setQuality(AttrQuality.ATTR_INVALID);
            readValue.setXDim(0);
            readValue.setYDim(0);
            lastError = e;
            throw e;
        }
        xlogger.exit(getName());
    }
@ Override public void updateValue ( final AttributeValue inValue ) throws DevFailed { xlogger . entry ( getName ( ) ) ; if ( inValue == null ) { throw DevFailedUtils . newDevFailed ( ExceptionMessages . ATTR_VALUE_NOT_SET , name + " read value has not been updated" ) ; } try { readValue = ( AttributeValue ) inValue . clone ( ) ; } catch ( final CloneNotSupportedException e ) { throw DevFailedUtils . newDevFailed ( e ) ; } if ( readValue . getValue ( ) != null && ! readValue . getQuality ( ) . equals ( AttrQuality . ATTR_INVALID ) ) { updateQuality ( readValue ) ; } try { if ( readValue . getValue ( ) != null ) { checkUpdateErrors ( readValue ) ; readValue . setValueWithoutDim ( ArrayUtils . from2DArrayToArray ( readValue . getValue ( ) ) ) ; TangoIDLAttributeUtil . toAttributeValue5 ( this , readValue , null ) ; } else { throw DevFailedUtils . newDevFailed ( ExceptionMessages . ATTR_VALUE_NOT_SET , name + " read value has not been updated" ) ; } updateDefaultWritePart ( ) ; } catch ( final DevFailed e ) { readValue . setXDim ( 0 ) ; readValue . setYDim ( 0 ) ; lastError = e ; throw e ; } xlogger . exit ( getName ( ) ) ; }
set the read value

@throws DevFailed