// Path: src/main/java/de/fh_zwickau/informatik/sensor/model/zwaveapi/ZWaveDataElement.java
// public class ZWaveDataElement {
//     @SerializedName("invalidateTime")
//     private Integer mInvalidateTime;
//     @SerializedName("updateTime")
//     private Integer mUpdateTime;
//     @SerializedName("type")
//     private String mType;
//     @SerializedName("value")
//     private String mValue;
// 
//     /**
//      * Instantiate a Z-Wave data element object with default values.
//      */
//     public ZWaveDataElement() {
//         mInvalidateTime = -1;
//         mUpdateTime = -1;
//         mType = "";
//         mValue = "";
//     }
// 
//     public Integer getmInvalidateTime() {
//         if (mInvalidateTime == null) {
//             mInvalidateTime = -1;
//         }
//         return mInvalidateTime;
//     }
// 
//     public void setInvalidateTime(Integer invalidateTime) {
//         this.mInvalidateTime = invalidateTime;
//     }
// 
//     public Integer getUpdateTime() {
//         if (mUpdateTime == null) {
//             mUpdateTime = -1;
//         }
//         return mUpdateTime;
//     }
// 
//     public void setUpdateTime(Integer updateTime) {
//         this.mUpdateTime = updateTime;
//     }
// 
//     public String getType() {
//         if (mType == null) {
//             mType = "";
//         }
//         return mType;
//     }
// 
//     public void setType(String type) {
//         this.mType = type;
//     }
// 
//     public String getValue() {
//         if (mValue == null) {
//             mValue = "";
//         }
//         return mValue;
//     }
// 
//     public void setValue(String value) {
//         this.mValue = value;
//     }
// 
//     /*
//      * (non-Javadoc)
//      *
//      * @see java.lang.Object#toString()
//      */
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this).append("invalidateTime", mInvalidateTime).append("updateTime", mUpdateTime)
//                 .append("type", mType).append("value", mValue).toString();
//     }
// 
// }


import org.apache.commons.lang3.builder.ToStringBuilder;
import com.google.gson.annotations.SerializedName;
import de.fh_zwickau.informatik.sensor.model.zwaveapi.ZWaveDataElement;
    @SerializedName("curSerialAPIAckTimeout10ms")
    private ZWaveDataElement mCurSerialAPIAckTimeout10ms;
    @SerializedName("curSerialAPIByteTimeout10ms")
    private ZWaveDataElement mCurSerialAPIByteTimeout10ms;
    @SerializedName("countJobs")
    private ZWaveDataElement mCountJobs;
    @SerializedName("memoryGetAddress")
    private ZWaveDataElement mMemoryGetAddress;
    // TODO mMemoryGetData is an array
    // TODO functionClasses is an array
    // TODO functionClassesNames is an array
    @SerializedName("softwareRevisionVersion")
    private ZWaveDataElement mSoftwareRevisionVersion;
    @SerializedName("softwareRevisionId")
    private ZWaveDataElement mSoftwareRevisionId;
    @SerializedName("softwareRevisionDate")
    private ZWaveDataElement mSoftwareRevisionDate;
    @SerializedName("uuid")
    private ZWaveDataElement mUuid;
    // TODO caps is an array
    @SerializedName("frequency")
    private ZWaveDataElement mFrequency;
    @SerializedName("deviceRelaxDelay")
    private ZWaveDataElement mDeviceRelaxDelay;

    /**
     * Instantiate a data field of Z-Wave controller with default values.
     */
    public ZWaveControllerData() {
        this.mNodeId = new ZWaveDataElement();
// Path: src/main/java/de/fh_zwickau/informatik/sensor/model/zwaveapi/ZWaveDataElement.java
// public class ZWaveDataElement {
//     @SerializedName("invalidateTime")
//     private Integer mInvalidateTime;
//     @SerializedName("updateTime")
//     private Integer mUpdateTime;
//     @SerializedName("type")
//     private String mType;
//     @SerializedName("value")
//     private String mValue;
// 
//     /**
//      * Instantiate a Z-Wave data element object with default values.
//      */
//     public ZWaveDataElement() {
//         mInvalidateTime = -1;
//         mUpdateTime = -1;
//         mType = "";
//         mValue = "";
//     }
// 
//     public Integer getmInvalidateTime() {
//         if (mInvalidateTime == null) {
//             mInvalidateTime = -1;
//         }
//         return mInvalidateTime;
//     }
// 
//     public void setInvalidateTime(Integer invalidateTime) {
//         this.mInvalidateTime = invalidateTime;
//     }
// 
//     public Integer getUpdateTime() {
//         if (mUpdateTime == null) {
//             mUpdateTime = -1;
//         }
//         return mUpdateTime;
//     }
// 
//     public void setUpdateTime(Integer updateTime) {
//         this.mUpdateTime = updateTime;
//     }
// 
//     public String getType() {
//         if (mType == null) {
//             mType = "";
//         }
//         return mType;
//     }
// 
//     public void setType(String type) {
//         this.mType = type;
//     }
// 
//     public String getValue() {
//         if (mValue == null) {
//             mValue = "";
//         }
//         return mValue;
//     }
// 
//     public void setValue(String value) {
//         this.mValue = value;
//     }
// 
//     /*
//      * (non-Javadoc)
//      *
//      * @see java.lang.Object#toString()
//      */
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this).append("invalidateTime", mInvalidateTime).append("updateTime", mUpdateTime)
//                 .append("type", mType).append("value", mValue).toString();
//     }
// 
// }


// Path: src/main/java/de/fh_zwickau/informatik/sensor/model/zwaveapi/controller/ZWaveControllerData.java
import org.apache.commons.lang3.builder.ToStringBuilder;
import com.google.gson.annotations.SerializedName;
import de.fh_zwickau.informatik.sensor.model.zwaveapi.ZWaveDataElement;

    @SerializedName("curSerialAPIAckTimeout10ms")
    private ZWaveDataElement mCurSerialAPIAckTimeout10ms;
    @SerializedName("curSerialAPIByteTimeout10ms")
    private ZWaveDataElement mCurSerialAPIByteTimeout10ms;
    @SerializedName("countJobs")
    private ZWaveDataElement mCountJobs;
    @SerializedName("memoryGetAddress")
    private ZWaveDataElement mMemoryGetAddress;
    // TODO mMemoryGetData is an array
    // TODO functionClasses is an array
    // TODO functionClassesNames is an array
    @SerializedName("softwareRevisionVersion")
    private ZWaveDataElement mSoftwareRevisionVersion;
    @SerializedName("softwareRevisionId")
    private ZWaveDataElement mSoftwareRevisionId;
    @SerializedName("softwareRevisionDate")
    private ZWaveDataElement mSoftwareRevisionDate;
    @SerializedName("uuid")
    private ZWaveDataElement mUuid;
    // TODO caps is an array
    @SerializedName("frequency")
    private ZWaveDataElement mFrequency;
    @SerializedName("deviceRelaxDelay")
    private ZWaveDataElement mDeviceRelaxDelay;

    /**
     * Instantiate a data field of Z-Wave controller with default values.
     */
    public ZWaveControllerData() {
        this.mNodeId = new ZWaveDataElement();
        this.mHomeId = new ZWaveDataElement();