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

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


The following commit(s) were added to refs/heads/feature/io-model by this push:
     new fd6c519  - Introduced a base class for the entry level protocols
fd6c519 is described below

commit fd6c519e3f5908c5fb535e4037ba2c93b447defb
Author: Christofer Dutz <christofer.d...@c-ware.de>
AuthorDate: Tue Dec 18 08:33:02 2018 +0100

    - Introduced a base class for the entry level protocols
---
 .../apache/plc4x/java/spi/BaseToByteProtocol.java} | 19 ++++-----
 .../org/apache/plc4x/java/spi/ToByteProtocol.java  | 28 -------------
 .../java/isoontcp/protocol/IsoOnTcpProtocol.java   | 49 +++-------------------
 .../isoontcp/protocol/model/IsoOnTcpMessage.java   |  1 -
 4 files changed, 14 insertions(+), 83 deletions(-)

diff --git 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
 
b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/BaseToByteProtocol.java
similarity index 80%
copy from 
plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
copy to 
plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/BaseToByteProtocol.java
index f2f1607..7cd3496 100644
--- 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
+++ 
b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/BaseToByteProtocol.java
@@ -16,38 +16,35 @@
  specific language governing permissions and limitations
  under the License.
  */
-package org.apache.plc4x.java.isoontcp.protocol;
+
+package org.apache.plc4x.java.spi;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufUtil;
 import io.netty.channel.ChannelHandlerContext;
 import org.apache.plc4x.java.api.exceptions.PlcProtocolException;
 import org.apache.plc4x.java.base.PlcByteToMessageCodec;
-import org.apache.plc4x.java.isoontcp.protocol.model.IsoOnTcpMessage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
-public class IsoOnTcpProtocol extends PlcByteToMessageCodec<IsoOnTcpMessage> {
+public abstract class BaseToByteProtocol<T> extends PlcByteToMessageCodec<T> {
 
-    private static final Logger logger = 
LoggerFactory.getLogger(IsoOnTcpProtocol.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(BaseToByteProtocol.class);
 
-    private final IsoOnTcpMessage.ModelIO rootModelIO;
 
-    public IsoOnTcpProtocol() {
-        rootModelIO = new IsoOnTcpMessage.ModelIO();
-    }
+    protected abstract ModelIO<T> getRootModelIo();
 
     
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     // Encoding
     
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     @Override
-    protected void encode(ChannelHandlerContext ctx, IsoOnTcpMessage in, 
ByteBuf out) throws Exception {
+    protected void encode(ChannelHandlerContext ctx, T in, ByteBuf out) throws 
Exception {
         logger.debug("ISO on TCP Message sent");
         try {
-            rootModelIO.encode(in, out);
+            getRootModelIo().encode(in, out);
         } catch (PlcProtocolException e) {
             exceptionCaught(ctx, e);
         }
@@ -64,7 +61,7 @@ public class IsoOnTcpProtocol extends 
PlcByteToMessageCodec<IsoOnTcpMessage> {
         }
         logger.debug("ISO on TCP Message received");
         try {
-            IsoOnTcpMessage decodedMessage = rootModelIO.decode(in);
+            T decodedMessage = getRootModelIo().decode(in);
             if(decodedMessage != null) {
                 out.add(decodedMessage);
             }
diff --git 
a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/ToByteProtocol.java
 
b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/ToByteProtocol.java
deleted file mode 100644
index 6f4ed0f..0000000
--- 
a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/spi/ToByteProtocol.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-package org.apache.plc4x.java.spi;
-
-import org.apache.plc4x.java.base.PlcByteToMessageCodec;
-
-public abstract class ToByteProtocol<T> extends PlcByteToMessageCodec<T> {
-
-
-
-}
diff --git 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
 
b/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
index f2f1607..98c2883 100644
--- 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
+++ 
b/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
@@ -18,20 +18,12 @@
  */
 package org.apache.plc4x.java.isoontcp.protocol;
 
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufUtil;
-import io.netty.channel.ChannelHandlerContext;
-import org.apache.plc4x.java.api.exceptions.PlcProtocolException;
-import org.apache.plc4x.java.base.PlcByteToMessageCodec;
-import org.apache.plc4x.java.isoontcp.protocol.model.IsoOnTcpMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
 
-public class IsoOnTcpProtocol extends PlcByteToMessageCodec<IsoOnTcpMessage> {
+import org.apache.plc4x.java.isoontcp.protocol.model.IsoOnTcpMessage;
+import org.apache.plc4x.java.spi.BaseToByteProtocol;
+import org.apache.plc4x.java.spi.ModelIO;
 
-    private static final Logger logger = 
LoggerFactory.getLogger(IsoOnTcpProtocol.class);
+public class IsoOnTcpProtocol extends BaseToByteProtocol<IsoOnTcpMessage> {
 
     private final IsoOnTcpMessage.ModelIO rootModelIO;
 
@@ -39,38 +31,9 @@ public class IsoOnTcpProtocol extends 
PlcByteToMessageCodec<IsoOnTcpMessage> {
         rootModelIO = new IsoOnTcpMessage.ModelIO();
     }
 
-    
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    // Encoding
-    
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-    @Override
-    protected void encode(ChannelHandlerContext ctx, IsoOnTcpMessage in, 
ByteBuf out) throws Exception {
-        logger.debug("ISO on TCP Message sent");
-        try {
-            rootModelIO.encode(in, out);
-        } catch (PlcProtocolException e) {
-            exceptionCaught(ctx, e);
-        }
-    }
-
-    
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    // Decoding
-    
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
     @Override
-    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> 
out) throws Exception {
-        if(logger.isTraceEnabled()) {
-            logger.trace("Got Data: {}", ByteBufUtil.hexDump(in));
-        }
-        logger.debug("ISO on TCP Message received");
-        try {
-            IsoOnTcpMessage decodedMessage = rootModelIO.decode(in);
-            if(decodedMessage != null) {
-                out.add(decodedMessage);
-            }
-        } catch (PlcProtocolException e) {
-            exceptionCaught(ctx, e);
-        }
+    protected ModelIO<IsoOnTcpMessage> getRootModelIo() {
+        return rootModelIO;
     }
 
 }
diff --git 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java
 
b/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java
index e855244..7a071e7 100644
--- 
a/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java
+++ 
b/plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java
@@ -87,7 +87,6 @@ public class IsoOnTcpMessage extends PlcRawMessage {
             }
             return null;
         }
-
     }
 
 }

Reply via email to