From b0e9a9feef7e260eafd0c01e2d6fb375cee87c93 Mon Sep 17 00:00:00 2001
From: Thorsten Vitt <thorsten.vitt@uni-wuerzburg.de>
Date: Mon, 27 May 2013 11:44:37 +0000
Subject: [PATCH] Skeleton for infrastructure to collect aggregation trees

git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@14087 7c539038-3410-0410-b1ec-0f2a7bf1c452
---
 .../services/aggregator/tree/Aggregation.java | 11 ++++++
 .../aggregator/tree/AggregationEntry.java     | 18 ++++++++++
 .../tree/AggregationTreeFactory.java          | 35 +++++++++++++++++++
 3 files changed, 64 insertions(+)
 create mode 100644 src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java
 create mode 100644 src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java
 create mode 100644 src/main/java/info/textgrid/services/aggregator/tree/AggregationTreeFactory.java

diff --git a/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java b/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java
new file mode 100644
index 0000000..c34f630
--- /dev/null
+++ b/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java
@@ -0,0 +1,11 @@
+package info.textgrid.services.aggregator.tree;
+
+import info.textgrid.namespaces.metadata.core._2010.ObjectType;
+
+public class Aggregation extends AggregationEntry {
+
+	public Aggregation(final ObjectType metadata) {
+		super(metadata);
+	}
+
+}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java b/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java
new file mode 100644
index 0000000..6f29b92
--- /dev/null
+++ b/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java
@@ -0,0 +1,18 @@
+package info.textgrid.services.aggregator.tree;
+
+import info.textgrid.namespaces.metadata.core._2010.ObjectType;
+
+
+public class AggregationEntry {
+
+	private final ObjectType metadata;
+
+	public AggregationEntry(final ObjectType metadata) {
+		this.metadata = metadata;
+	}
+
+	public ObjectType getMetadata() {
+		return metadata;
+	}
+
+}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/AggregationTreeFactory.java b/src/main/java/info/textgrid/services/aggregator/tree/AggregationTreeFactory.java
new file mode 100644
index 0000000..943bd95
--- /dev/null
+++ b/src/main/java/info/textgrid/services/aggregator/tree/AggregationTreeFactory.java
@@ -0,0 +1,35 @@
+package info.textgrid.services.aggregator.tree;
+
+import info.textgrid.namespaces.metadata.core._2010.ObjectType;
+import info.textgrid.services.aggregator.AggregationTreeWalker;
+
+import java.util.Deque;
+
+import com.google.common.collect.Lists;
+
+public class AggregationTreeFactory extends AggregationTreeWalker {
+
+	private final Deque<AggregationEntry> stack = Lists.newLinkedList();
+	private final Aggregation root;
+
+	protected AggregationTreeFactory(final ObjectType root) {
+		super();
+		this.root = new Aggregation(root);
+		stack.push(this.root);
+		walkAggregation(root, false);
+	}
+
+	@Override
+	protected boolean walk(final ObjectType object, final boolean again) {
+		// TODO Auto-generated method stub
+		return super.walk(object, again);
+	}
+
+	@Override
+	protected void walkAggregation(final ObjectType aggregation,
+			final boolean again) {
+		// TODO Auto-generated method stub
+		super.walkAggregation(aggregation, again);
+	}
+
+}
-- 
GitLab