You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/02/02 07:09:05 UTC

[incubator-plc4x] branch feature/Beckhoff_ADS_protocol updated: renamed model package to api

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch feature/Beckhoff_ADS_protocol
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/feature/Beckhoff_ADS_protocol by this push:
     new 665dcfc  renamed model package to api
665dcfc is described below

commit 665dcfc24313e831e97816e0b4201f025e7b94cb
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Feb 2 08:08:59 2018 +0100

    renamed model package to api
---
 .../commands/ADSAddDeviceNotificationRequest.java    | 14 +++++++-------
 .../commands/ADSAddDeviceNotificationResponse.java   | 16 ++++++++--------
 .../commands/ADSDeleteDeviceNotificationRequest.java | 12 ++++++------
 .../ADSDeleteDeviceNotificationResponse.java         | 12 ++++++------
 .../commands/ADSDeviceNotificationRequest.java       | 18 +++++++++---------
 .../commands/ADSDeviceNotificationResponse.java      |  6 +++---
 .../commands/ADSReadDeviceInfoRequest.java           | 10 +++++-----
 .../commands/ADSReadDeviceInfoResponse.java          | 12 ++++++------
 .../ads/{model => api}/commands/ADSReadRequest.java  | 18 +++++++++---------
 .../ads/{model => api}/commands/ADSReadResponse.java | 18 +++++++++---------
 .../{model => api}/commands/ADSReadStateRequest.java | 10 +++++-----
 .../commands/ADSReadStateResponse.java               | 12 ++++++------
 .../{model => api}/commands/ADSReadWriteRequest.java | 20 ++++++++++----------
 .../commands/ADSReadWriteResponse.java               | 18 +++++++++---------
 .../commands/ADSWriteControlRequest.java             | 18 +++++++++---------
 .../commands/ADSWriteControlResponse.java            | 12 ++++++------
 .../ads/{model => api}/commands/ADSWriteRequest.java | 18 +++++++++---------
 .../{model => api}/commands/ADSWriteResponse.java    | 12 ++++++------
 .../ads/{model => api}/commands/types/ADSState.java  |  4 ++--
 .../commands/types/AdsNotificationSample.java        |  6 +++---
 .../commands/types/AdsStampHeader.java               |  6 +++---
 .../ads/{model => api}/commands/types/CycleTime.java |  4 ++--
 .../{model/generic => api/commands}/types/Data.java  |  4 ++--
 .../ads/{model => api}/commands/types/Device.java    |  4 ++--
 .../{model => api}/commands/types/DeviceState.java   |  4 ++--
 .../{model => api}/commands/types/IndexGroup.java    |  4 ++--
 .../{model => api}/commands/types/IndexOffset.java   |  4 ++--
 .../types/InvalidationNotificationHandle.java        |  2 +-
 .../generic => api/commands}/types/Length.java       | 11 ++++++-----
 .../{model => api}/commands/types/MajorVersion.java  |  4 ++--
 .../ads/{model => api}/commands/types/MaxDelay.java  |  4 ++--
 .../{model => api}/commands/types/MinorVersion.java  |  4 ++--
 .../commands/types/NotificationHandle.java           |  4 ++--
 .../{model => api}/commands/types/ReadLength.java    |  4 ++--
 .../ads/{model => api}/commands/types/Result.java    |  4 ++--
 .../{model => api}/commands/types/SampleSize.java    |  4 ++--
 .../ads/{model => api}/commands/types/Samples.java   |  4 ++--
 .../ads/{model => api}/commands/types/Stamps.java    |  4 ++--
 .../ads/{model => api}/commands/types/TimeStamp.java |  4 ++--
 .../commands/types/TransmissionMode.java             |  4 ++--
 .../ads/{model => api}/commands/types/Version.java   |  4 ++--
 .../{model => api}/commands/types/WriteLength.java   |  4 ++--
 .../java/ads/{model => api}/generic/ADSData.java     |  4 ++--
 .../java/ads/{model => api}/generic/AMSHeader.java   |  6 +++---
 .../ads/{model => api}/generic/AMSTCPHeader.java     |  8 ++++----
 .../java/ads/{model => api}/generic/AMSTCPPaket.java |  4 ++--
 .../ads/{model => api}/generic/types/AMSError.java   |  4 ++--
 .../ads/{model => api}/generic/types/AMSNetId.java   |  4 ++--
 .../ads/{model => api}/generic/types/AMSPort.java    |  4 ++--
 .../ads/{model => api}/generic/types/Command.java    |  4 ++--
 .../{model/commands => api/generic}/types/Data.java  |  4 ++--
 .../ads/{model => api}/generic/types/DataLength.java |  4 ++--
 .../ads/{model => api}/generic/types/Invoke.java     |  4 ++--
 .../commands => api/generic}/types/Length.java       | 11 +++++------
 .../java/ads/{model => api}/generic/types/State.java |  4 ++--
 .../java/ads/{model => api}/util/ByteReadable.java   |  2 +-
 .../java/ads/{model => api}/util/ByteValue.java      |  2 +-
 57 files changed, 215 insertions(+), 215 deletions(-)

diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java
similarity index 88%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java
index b7aa7ed..29baa5d 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java
@@ -16,14 +16,14 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.*;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.commands.types.*;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 /**
  * A notification is created in an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java
similarity index 77%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java
index 6b4dfda..3701980 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSAddDeviceNotificationResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java
@@ -16,14 +16,14 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
-
-import org.apache.plc4x.java.ads.model.commands.types.NotificationHandle;
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+package org.apache.plc4x.java.ads.api.commands;
+
+import org.apache.plc4x.java.ads.api.commands.types.NotificationHandle;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * A notification is created in an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java
similarity index 79%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java
index 937f3be..d0458c9 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.NotificationHandle;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.NotificationHandle;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * One before defined notification is deleted in an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java
index dc00392..bd18dd8 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeleteDeviceNotificationResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * One before defined notification is deleted in an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java
similarity index 79%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java
index be1d570..2fe8b18 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java
@@ -16,15 +16,15 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
-
-import org.apache.plc4x.java.ads.model.commands.types.AdsStampHeader;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.commands.types.Stamps;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+package org.apache.plc4x.java.ads.api.commands;
+
+import org.apache.plc4x.java.ads.api.commands.types.AdsStampHeader;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.commands.types.Stamps;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Data will carry forward independently from an ADS device to a Client
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java
similarity index 87%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java
index 509b57e..9d60d37 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSDeviceNotificationResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java
@@ -16,10 +16,10 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Data will carry forward independently from an ADS device to a Client
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java
similarity index 80%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java
index 45ff657..b03b296 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java
@@ -16,12 +16,12 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Reads the name and the version number of the ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java
similarity index 84%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java
index d2ca75a..51e45d6 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadDeviceInfoResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.*;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.*;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Reads the name and the version number of the ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java
index 962d835..10cb79a 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java
@@ -16,15 +16,15 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
-
-import org.apache.plc4x.java.ads.model.commands.types.IndexGroup;
-import org.apache.plc4x.java.ads.model.commands.types.IndexOffset;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+package org.apache.plc4x.java.ads.api.commands;
+
+import org.apache.plc4x.java.ads.api.commands.types.IndexGroup;
+import org.apache.plc4x.java.ads.api.commands.types.IndexOffset;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * With ADS Read data can be read from an ADS device.  The data are addressed by the Index Group and the Index Offset
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java
similarity index 76%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java
index 6e2cf9a..a96ced1 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java
@@ -16,15 +16,15 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
-
-import org.apache.plc4x.java.ads.model.commands.types.Data;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+package org.apache.plc4x.java.ads.api.commands;
+
+import org.apache.plc4x.java.ads.api.commands.types.Data;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * With ADS Read data can be read from an ADS device
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java
similarity index 80%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java
index 15de095..4b907ea 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java
@@ -16,12 +16,12 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Reads the ADS status and the device status of an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java
index 4a24960..85533a4 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadStateResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Reads the ADS status and the device status of an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java
index f3d9261..1a137b1 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java
@@ -16,17 +16,17 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.IndexGroup;
-import org.apache.plc4x.java.ads.model.commands.types.IndexOffset;
-import org.apache.plc4x.java.ads.model.commands.types.ReadLength;
-import org.apache.plc4x.java.ads.model.commands.types.WriteLength;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.commands.types.IndexGroup;
+import org.apache.plc4x.java.ads.api.commands.types.IndexOffset;
+import org.apache.plc4x.java.ads.api.commands.types.ReadLength;
+import org.apache.plc4x.java.ads.api.commands.types.WriteLength;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 /**
  * With ADS Read Write data will be written to an ADS device. Additionally, data can be read from the ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java
similarity index 77%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java
index 9597a64..85e0cda 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSReadWriteResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java
@@ -16,15 +16,15 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
-
-import org.apache.plc4x.java.ads.model.commands.types.Data;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+package org.apache.plc4x.java.ads.api.commands;
+
+import org.apache.plc4x.java.ads.api.commands.types.Data;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * With ADS Read Write data will be written to an ADS device. Additionally, data can be read from the ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java
index bdf2849..8ac2fb8 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java
@@ -16,16 +16,16 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.ADSState;
-import org.apache.plc4x.java.ads.model.commands.types.Data;
-import org.apache.plc4x.java.ads.model.commands.types.DeviceState;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.ADSState;
+import org.apache.plc4x.java.ads.api.commands.types.Data;
+import org.apache.plc4x.java.ads.api.commands.types.DeviceState;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Changes the ADS status and the device status of an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java
index 443b337..8e3a0b6 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteControlResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * Changes the ADS status and the device status of an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java
similarity index 77%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteRequest.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java
index 28b449b..fd5a7e5 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteRequest.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java
@@ -16,16 +16,16 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.Data;
-import org.apache.plc4x.java.ads.model.commands.types.IndexGroup;
-import org.apache.plc4x.java.ads.model.commands.types.IndexOffset;
-import org.apache.plc4x.java.ads.model.commands.types.Length;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.Data;
+import org.apache.plc4x.java.ads.api.commands.types.IndexGroup;
+import org.apache.plc4x.java.ads.api.commands.types.IndexOffset;
+import org.apache.plc4x.java.ads.api.commands.types.Length;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * With ADS Write data can be written to an ADS device. The data are addressed by the Index Group and the Index Offset.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java
similarity index 78%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteResponse.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java
index da8786b..d34a658 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/ADSWriteResponse.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java
@@ -16,13 +16,13 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands;
+package org.apache.plc4x.java.ads.api.commands;
 
-import org.apache.plc4x.java.ads.model.commands.types.Result;
-import org.apache.plc4x.java.ads.model.generic.ADSData;
-import org.apache.plc4x.java.ads.model.generic.AMSHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPHeader;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.commands.types.Result;
+import org.apache.plc4x.java.ads.api.generic.ADSData;
+import org.apache.plc4x.java.ads.api.generic.AMSHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
 
 /**
  * With ADS Write data can be written to an ADS device.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ADSState.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ADSState.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ADSState.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ADSState.java
index 292a48e..4f4e3bf 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ADSState.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ADSState.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class ADSState extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsNotificationSample.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsNotificationSample.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
index b786f2a..43f98cd 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsNotificationSample.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 public class AdsNotificationSample implements ByteReadable {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsStampHeader.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsStampHeader.java
similarity index 92%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsStampHeader.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsStampHeader.java
index b5b40bc..70a4a06 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/AdsStampHeader.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsStampHeader.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.plc4x.java.ads.model.generic.AMSTCPPaket;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.generic.AMSTCPPaket;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 public class AdsStampHeader implements ByteReadable {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/CycleTime.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/CycleTime.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/CycleTime.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/CycleTime.java
index e09450e..139c546 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/CycleTime.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/CycleTime.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class CycleTime extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Data.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Data.java
similarity index 89%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Data.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Data.java
index db0c4dd..a37cff8 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Data.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Data.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Data extends ByteValue {
     Data(byte... values) {
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Device.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Device.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Device.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Device.java
index 356d154..0a18907 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Device.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Device.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Device extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/DeviceState.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/DeviceState.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/DeviceState.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/DeviceState.java
index 1211a89..397ccee 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/DeviceState.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/DeviceState.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class DeviceState extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexGroup.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexGroup.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexGroup.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexGroup.java
index 9ff42ff..619284d 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexGroup.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexGroup.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class IndexGroup extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexOffset.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexOffset.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexOffset.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexOffset.java
index f36a3cc..73d21fb 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/IndexOffset.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexOffset.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class IndexOffset extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/InvalidationNotificationHandle.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/InvalidationNotificationHandle.java
similarity index 95%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/InvalidationNotificationHandle.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/InvalidationNotificationHandle.java
index 77a446e..7c5afce 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/InvalidationNotificationHandle.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/InvalidationNotificationHandle.java
@@ -16,7 +16,7 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
 /**
  * Notice: If your handle becomes invalid, one notification without data will be send once as advice.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Length.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Length.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Length.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Length.java
index db7261e..0c1ac72 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Length.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Length.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
@@ -31,10 +31,11 @@ public class Length extends ByteValue {
         assertLength(NUM_BYTES);
     }
 
-    public static Length of(byte... values) {
-        return new Length(values);
-    }
     public static Length of(int length) {
         return new Length(ByteBuffer.allocate(NUM_BYTES).putInt(length).array());
     }
+
+    public static Length of(byte... values) {
+        return new Length(values);
+    }
 }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MajorVersion.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MajorVersion.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java
index d7bdc06..d6f0a0d 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MajorVersion.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class MajorVersion extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MaxDelay.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MaxDelay.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MaxDelay.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MaxDelay.java
index e113fac..a5472b4 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MaxDelay.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MaxDelay.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class MaxDelay extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MinorVersion.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MinorVersion.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java
index 2b70519..f12faa3 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/MinorVersion.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class MinorVersion extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/NotificationHandle.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/NotificationHandle.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/NotificationHandle.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/NotificationHandle.java
index 86b195e..643d99f 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/NotificationHandle.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/NotificationHandle.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class NotificationHandle extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ReadLength.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ReadLength.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ReadLength.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ReadLength.java
index ad596e9..0917ebf 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/ReadLength.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ReadLength.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Result.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Result.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Result.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Result.java
index ae9d62d..5fc9fbc 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Result.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Result.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Result extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/SampleSize.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/SampleSize.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/SampleSize.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/SampleSize.java
index f0c444c..640cfe5 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/SampleSize.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/SampleSize.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Samples.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Samples.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Samples.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Samples.java
index 0adb1f6..05737d9 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Samples.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Samples.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Stamps.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Stamps.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Stamps.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Stamps.java
index 4d0a756..7b39ee1 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Stamps.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Stamps.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Stamps extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TimeStamp.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TimeStamp.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TimeStamp.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TimeStamp.java
index 1719f3d..3ce38d7 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TimeStamp.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TimeStamp.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class TimeStamp extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TransmissionMode.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TransmissionMode.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TransmissionMode.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TransmissionMode.java
index f3e75c6..5aa16f7 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/TransmissionMode.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TransmissionMode.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class TransmissionMode extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Version.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Version.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Version.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Version.java
index f4cece6..6fa98eb 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Version.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Version.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Version extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/WriteLength.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/WriteLength.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/WriteLength.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/WriteLength.java
index 4a7d93e..4920d6e 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/WriteLength.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/WriteLength.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.commands.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/ADSData.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/ADSData.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/ADSData.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/ADSData.java
index 1e7e24f..e97b1dc 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/ADSData.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/ADSData.java
@@ -16,10 +16,10 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic;
+package org.apache.plc4x.java.ads.api.generic;
 
 import io.netty.buffer.Unpooled;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 /**
  * ADS Data	n bytes	The ADS data range contains the parameter of the single ADS commands. The structure of the data array depends on the ADS command. Some ADS commands require no additional data.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSHeader.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSHeader.java
similarity index 95%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSHeader.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSHeader.java
index 6af78da..4867436 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSHeader.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSHeader.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic;
+package org.apache.plc4x.java.ads.api.generic;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.plc4x.java.ads.model.generic.types.*;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.generic.types.*;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 /**
  * AMS Header	32 bytes	The AMS/TCP-Header contains the addresses of the transmitter and receiver. In addition the AMS error code , the ADS command Id and some other information.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPHeader.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java
similarity index 88%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPHeader.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java
index 0cd0bdc..17df6a6 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPHeader.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java
@@ -16,12 +16,12 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic;
+package org.apache.plc4x.java.ads.api.generic;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.plc4x.java.ads.model.generic.types.Length;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.generic.types.Length;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 /**
  * AMS/TCP Header	6 bytes	contains the length of the data packet.
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPPaket.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPaket.java
similarity index 95%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPPaket.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPaket.java
index 3c522c9..7182fde 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/AMSTCPPaket.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPaket.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic;
+package org.apache.plc4x.java.ads.api.generic;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 public abstract class AMSTCPPaket implements ByteReadable {
     private final AMSTCPHeader amstcpHeader;
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSError.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSError.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSError.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSError.java
index 05ddb14..ee34a58 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSError.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSError.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class AMSError extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSNetId.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSNetId.java
similarity index 94%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSNetId.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSNetId.java
index b577b31..c69299e 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSNetId.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSNetId.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 /**
  * The AMSNetId consists of 6 bytes and addresses the transmitter or receiver. One possible AMSNetId would be e.g.. 172.16.17.10.1.1. The storage arrangement in this example is as follows:
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSPort.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSPort.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSPort.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSPort.java
index 09d6fc6..d030a3a 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/AMSPort.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSPort.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Command.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Command.java
similarity index 93%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Command.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Command.java
index 41c748e..2424634 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Command.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Command.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Data.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Data.java
similarity index 89%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Data.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Data.java
index 1ba4783..3b37f42 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Data.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Data.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Data extends ByteValue {
     Data(byte... values) {
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/DataLength.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/DataLength.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/DataLength.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/DataLength.java
index 4fdbac7..f11c0bd 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/DataLength.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/DataLength.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Invoke.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Invoke.java
similarity index 90%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Invoke.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Invoke.java
index b9a0b44..ea3e070 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/Invoke.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Invoke.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 public class Invoke extends ByteValue {
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Length.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Length.java
similarity index 91%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Length.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Length.java
index def4e9d..6f1f7fb 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/commands/types/Length.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Length.java
@@ -16,9 +16,9 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.commands.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
-import org.apache.plc4x.java.ads.model.util.ByteValue;
+import org.apache.plc4x.java.ads.api.util.ByteValue;
 
 import java.nio.ByteBuffer;
 
@@ -31,11 +31,10 @@ public class Length extends ByteValue {
         assertLength(NUM_BYTES);
     }
 
-    public static Length of(int length) {
-        return new Length(ByteBuffer.allocate(NUM_BYTES).putInt(length).array());
-    }
-
     public static Length of(byte... values) {
         return new Length(values);
     }
+    public static Length of(int length) {
+        return new Length(ByteBuffer.allocate(NUM_BYTES).putInt(length).array());
+    }
 }
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/State.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/State.java
similarity index 94%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/State.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/State.java
index 4830bb2..2465bb7 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/generic/types/State.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/State.java
@@ -16,11 +16,11 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.generic.types;
+package org.apache.plc4x.java.ads.api.generic.types;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
-import org.apache.plc4x.java.ads.model.util.ByteReadable;
+import org.apache.plc4x.java.ads.api.util.ByteReadable;
 
 import java.nio.ByteBuffer;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteReadable.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadable.java
similarity index 95%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteReadable.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadable.java
index 9f9ad43..2b02651 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteReadable.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadable.java
@@ -16,7 +16,7 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.util;
+package org.apache.plc4x.java.ads.api.util;
 
 import io.netty.buffer.ByteBuf;
 
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteValue.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteValue.java
similarity index 96%
rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteValue.java
rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteValue.java
index c16b03f..13b5ebe 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/util/ByteValue.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteValue.java
@@ -16,7 +16,7 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.ads.model.util;
+package org.apache.plc4x.java.ads.api.util;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;

-- 
To stop receiving notification emails like this one, please contact
sruehl@apache.org.