summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/streamstack/StreamLayer.java')
-rw-r--r--src/com/isode/stroke/streamstack/StreamLayer.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/com/isode/stroke/streamstack/StreamLayer.java b/src/com/isode/stroke/streamstack/StreamLayer.java
new file mode 100644
index 0000000..c6d8f50
--- /dev/null
+++ b/src/com/isode/stroke/streamstack/StreamLayer.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2010 Remko Tron¨on
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+/*
+ * Copyright (c) 2010-2011, Isode Limited, London, England.
+ * All rights reserved.
+ */
+
+package com.isode.stroke.streamstack;
+
+import com.isode.stroke.base.ByteArray;
+
+/**
+ * Because of the lack of multiple inheritance in Java, this implements
+ * the abstract methods that should have been implemented in
+ * LowLayer and HighLayer.
+ */
+public abstract class StreamLayer implements LowLayer, HighLayer {
+
+ public HighLayer getParentLayer() {
+ return parentLayer;
+ }
+
+ public void setParentLayer(final HighLayer parentLayer) {
+ this.parentLayer = parentLayer;
+ }
+
+ public void writeDataToParentLayer(final ByteArray data) {
+ assert parentLayer != null;
+ parentLayer.handleDataRead(data);
+ }
+
+ public LowLayer getChildLayer() {
+ return childLayer;
+ }
+
+ public void setChildLayer(final LowLayer childLayer) {
+ this.childLayer = childLayer;
+ }
+
+ public void writeDataToChildLayer(final ByteArray data) {
+ assert childLayer != null;
+ childLayer.writeData(data);
+ }
+
+ private HighLayer parentLayer;
+ private LowLayer childLayer;
+}