Repository: incubator-apex-malhar
Updated Branches:
  refs/heads/master bbfc22292 -> 08cb9d3b3


APEXMALHAR-2050 moved Spillable libraries under state


Project: http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/commit/74ca9236
Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/tree/74ca9236
Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/diff/74ca9236

Branch: refs/heads/master
Commit: 74ca92369e3bc5250938e55f2bc7bf6a5605bf98
Parents: bbfc222
Author: MalharJenkins <jenk...@datatorrent.com>
Authored: Tue Apr 26 17:23:18 2016 +0530
Committer: Chandni Singh <csi...@apache.org>
Committed: Tue Apr 26 14:30:06 2016 -0700

----------------------------------------------------------------------
 .../apex/malhar/lib/spillable/Spillable.java    | 100 ---------------
 .../spillable/SpillableComplexComponent.java    | 126 -------------------
 .../apex/malhar/lib/spillable/package-info.java |  20 ---
 .../malhar/lib/state/spillable/Spillable.java   | 100 +++++++++++++++
 .../spillable/SpillableComplexComponent.java    | 126 +++++++++++++++++++
 .../lib/state/spillable/package-info.java       |  20 +++
 6 files changed, 246 insertions(+), 246 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/spillable/Spillable.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/spillable/Spillable.java 
b/library/src/main/java/org/apache/apex/malhar/lib/spillable/Spillable.java
deleted file mode 100644
index 39966d7..0000000
--- a/library/src/main/java/org/apache/apex/malhar/lib/spillable/Spillable.java
+++ /dev/null
@@ -1,100 +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.apex.malhar.lib.spillable;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Queue;
-
-import com.google.common.collect.ListMultimap;
-
-import com.datatorrent.api.Component;
-import com.datatorrent.api.Context.OperatorContext;
-
-/**
- * This is a marker interface for a spillable data structure.
- */
-public interface Spillable
-{
-  /**
-   * This represents a spillable {@link java.util.List}. The underlying 
implementation
-   * of this list is similar to that of an {@link java.util.ArrayList}. User's 
that receive an
-   * implementation of this interface don't need to worry about propagating 
operator call-backs
-   * to the data structure.
-   * @param <T> The type of the data stored in the {@link SpillableArrayList}.
-   */
-  interface SpillableArrayList<T> extends List<T>
-  {
-  }
-
-  /**
-   * This represents a spillable {@link java.util.Map}. The underlying 
implementation
-   * of this map uses the serialized representation of the key object as a 
key. User's that receive an
-   * implementation of this interface don't need to worry about propagating 
operator call-backs
-   * to the data structure.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values.
-   */
-  interface SpillableByteMap<K, V> extends Map<K, V>
-  {
-  }
-
-  /**
-   * This represents a spillable {@link 
com.google.common.collect.ListMultimap} implementation. User's that receive an
-   * implementation of this interface don't need to worry about propagating 
operator call-backs
-   * to the data structure.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values.
-   */
-  interface SpillableByteArrayListMultimap<K, V> extends ListMultimap<K, V>
-  {
-  }
-
-  /**
-   * This represents a spillable {@link java.util.Queue} implementation. 
User's that receive an
-   * implementation of this interface don't need to worry about propagating 
operator call-backs
-   * to the data structure.
-   * @param <T> The type of the data stored in the queue.
-   */
-  interface SpillableQueue<T> extends Queue<T>
-  {
-  }
-
-  /**
-   * This represents a spillable data structure that needs to be aware of the 
operator
-   * callbacks. All concrete or abstract implementations of spillable data 
structures
-   * should implement this interface. A user working with an implementation of 
this interface needs
-   * to make sure that the {@link com.datatorrent.api.Operator} call-backs are 
propagated to it.
-   */
-  interface SpillableComponent extends Component<OperatorContext>, Spillable
-  {
-    /**
-     * This signals that the parent {@link com.datatorrent.api.Operator}'s
-     * {@link com.datatorrent.api.Operator#beginWindow(long)} method has been 
called.
-     * @param windowId The next windowId of the parent operator.
-     */
-    void beginWindow(long windowId);
-
-    /**
-     * This signals that the parent {@link com.datatorrent.api.Operator}'s
-     * {@link com.datatorrent.api.Operator#endWindow()} method has been called.
-     */
-    void endWindow();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/spillable/SpillableComplexComponent.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/spillable/SpillableComplexComponent.java
 
b/library/src/main/java/org/apache/apex/malhar/lib/spillable/SpillableComplexComponent.java
deleted file mode 100644
index c5acbc5..0000000
--- 
a/library/src/main/java/org/apache/apex/malhar/lib/spillable/SpillableComplexComponent.java
+++ /dev/null
@@ -1,126 +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.apex.malhar.lib.spillable;
-
-import org.apache.apex.malhar.lib.spillable.Spillable.SpillableComponent;
-import org.apache.apex.malhar.lib.utils.serde.Serde;
-
-import com.datatorrent.api.Component;
-import com.datatorrent.api.Context.OperatorContext;
-
-
-/**
- * This is a composite component containing spillable data structures. This 
should be used as
- * a component inside {@link com.datatorrent.api.Operator}s.
- */
-public interface SpillableComplexComponent extends Component<OperatorContext>, 
SpillableComponent
-{
-  /**
-   * This is a method for creating a {@link SpillableArrayList}. This method
-   * auto-generates an identifier for the data structure.
-   * @param <T> The type of data stored in the {@link SpillableArrayList}.
-   * @param bucket The bucket that this {@link SpillableArrayList} will be 
spilled too.
-   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableArrayList}.
-   * @return A {@link SpillableArrayList}.
-   */
-  <T> SpillableArrayList<T> newSpillableArrayList(long bucket, Serde<T, 
byte[]> serde);
-
-  /**
-   * This is a method for creating a {@link SpillableArrayList}.
-   * @param <T> The type of data stored in the {@link SpillableArrayList}.
-   * @param identifier The identifier for this {@link SpillableArrayList}.
-   * @param bucket The bucket that this {@link SpillableArrayList} will be 
spilled too.
-   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableArrayList}.
-   * @return A {@link SpillableArrayList}.
-   */
-  <T> SpillableArrayList<T> newSpillableArrayList(byte[] identifier, long 
bucket, Serde<T, byte[]> serde);
-
-  /**
-   * This is a method for creating a {@link SpillableByteMap}. This method
-   * auto-generates an identifier for the data structure.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values.
-   * @param bucket The bucket that this {@link SpillableByteMap} will be 
spilled too.
-   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
-   * @param serdeValue The Serializer/Deserializer to use for the map's values.
-   * @return A {@link SpillableByteMap}.
-   */
-  <K, V> SpillableByteMap<K, V> newSpillableByteMap(long bucket, Serde<K, 
byte[]> serdeKey,
-      Serde<V, byte[]> serdeValue);
-
-  /**
-   * This is a method for creating a {@link SpillableByteMap}.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values.
-   * @param identifier The identifier for this {@link SpillableByteMap}.
-   * @param bucket The bucket that this {@link SpillableByteMap} will be 
spilled too.
-   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
-   * @param serdeValue The Serializer/Deserializer to use for the map's values.
-   * @return A {@link SpillableByteMap}.
-   */
-  <K, V> SpillableByteMap<K, V> newSpillableByteMap(byte[] identifier, long 
bucket,
-      Serde<K, byte[]> serdeKey, Serde<V, byte[]> serdeValue);
-
-  /**
-   * This is a method for creating a {@link SpillableByteArrayListMultimap}. 
This method
-   * auto-generates an identifier for the data structure.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values in the map's lists.
-   * @param bucket The bucket that this {@link SpillableByteArrayListMultimap} 
will be spilled too.
-   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
-   * @param serdeValue The Serializer/Deserializer to use for the values in 
the map's lists.
-   * @return A {@link SpillableByteArrayListMultimap}.
-   */
-  <K, V> SpillableByteArrayListMultimap<K, V> 
newSpillableByteArrayListMultimap(long bucket, Serde<K,
-      byte[]> serdeKey, Serde<V, byte[]> serdeValue);
-
-  /**
-   * This is a method for creating a {@link SpillableByteArrayListMultimap}.
-   * @param <K> The type of the keys.
-   * @param <V> The type of the values in the map's lists.
-   * @param identifier The identifier for this {@link 
SpillableByteArrayListMultimap}.
-   * @param bucket The bucket that this {@link SpillableByteArrayListMultimap} 
will be spilled too.
-   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
-   * @param serdeValue The Serializer/Deserializer to use for the values in 
the map's lists.
-   * @return A {@link SpillableByteArrayListMultimap}.
-   */
-  <K, V> SpillableByteArrayListMultimap<K, V> 
newSpillableByteArrayListMultimap(byte[] identifier, long bucket,
-      Serde<K, byte[]> serdeKey,
-      Serde<V, byte[]> serdeValue);
-
-  /**
-   * This is a method for creating a {@link SpillableQueue}. This method
-   * auto-generates an identifier for the data structure.
-   * @param <T> The type of the data stored in the {@link SpillableQueue}.
-   * @param bucket The bucket that this {@link SpillableQueue} will be spilled 
too.
-   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableQueue}.
-   * @return A {@link SpillableQueue}.
-   */
-  <T> SpillableQueue<T> newSpillableQueue(long bucket, Serde<T, byte[]> serde);
-
-  /**
-   * This is a method for creating a {@link SpillableQueue}.
-   * @param <T> The type of the data stored in the {@link SpillableQueue}.
-   * @param identifier The identifier for this {@link 
SpillableByteArrayListMultimap}.
-   * @param bucket The bucket that this {@link SpillableQueue} will be spilled 
too.
-   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableQueue}.
-   * @return A {@link SpillableQueue}.
-   */
-  <T> SpillableQueue<T> newSpillableQueue(byte[] identifier, long bucket, 
Serde<T, byte[]> serde);
-}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/spillable/package-info.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/spillable/package-info.java 
b/library/src/main/java/org/apache/apex/malhar/lib/spillable/package-info.java
deleted file mode 100644
index 44de451..0000000
--- 
a/library/src/main/java/org/apache/apex/malhar/lib/spillable/package-info.java
+++ /dev/null
@@ -1,20 +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.
- */
-@org.apache.hadoop.classification.InterfaceStability.Unstable
-package org.apache.apex.malhar.lib.spillable;

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/Spillable.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/Spillable.java
 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/Spillable.java
new file mode 100644
index 0000000..bc7a6d5
--- /dev/null
+++ 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/Spillable.java
@@ -0,0 +1,100 @@
+/**
+ * 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.apex.malhar.lib.state.spillable;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+
+import com.google.common.collect.ListMultimap;
+
+import com.datatorrent.api.Component;
+import com.datatorrent.api.Context.OperatorContext;
+
+/**
+ * This is a marker interface for a spillable data structure.
+ */
+public interface Spillable
+{
+  /**
+   * This represents a spillable {@link java.util.List}. The underlying 
implementation
+   * of this list is similar to that of an {@link java.util.ArrayList}. User's 
that receive an
+   * implementation of this interface don't need to worry about propagating 
operator call-backs
+   * to the data structure.
+   * @param <T> The type of the data stored in the {@link SpillableArrayList}.
+   */
+  interface SpillableArrayList<T> extends List<T>
+  {
+  }
+
+  /**
+   * This represents a spillable {@link java.util.Map}. The underlying 
implementation
+   * of this map uses the serialized representation of the key object as a 
key. User's that receive an
+   * implementation of this interface don't need to worry about propagating 
operator call-backs
+   * to the data structure.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values.
+   */
+  interface SpillableByteMap<K, V> extends Map<K, V>
+  {
+  }
+
+  /**
+   * This represents a spillable {@link 
com.google.common.collect.ListMultimap} implementation. User's that receive an
+   * implementation of this interface don't need to worry about propagating 
operator call-backs
+   * to the data structure.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values.
+   */
+  interface SpillableByteArrayListMultimap<K, V> extends ListMultimap<K, V>
+  {
+  }
+
+  /**
+   * This represents a spillable {@link java.util.Queue} implementation. 
User's that receive an
+   * implementation of this interface don't need to worry about propagating 
operator call-backs
+   * to the data structure.
+   * @param <T> The type of the data stored in the queue.
+   */
+  interface SpillableQueue<T> extends Queue<T>
+  {
+  }
+
+  /**
+   * This represents a spillable data structure that needs to be aware of the 
operator
+   * callbacks. All concrete or abstract implementations of spillable data 
structures
+   * should implement this interface. A user working with an implementation of 
this interface needs
+   * to make sure that the {@link com.datatorrent.api.Operator} call-backs are 
propagated to it.
+   */
+  interface SpillableComponent extends Component<OperatorContext>, Spillable
+  {
+    /**
+     * This signals that the parent {@link com.datatorrent.api.Operator}'s
+     * {@link com.datatorrent.api.Operator#beginWindow(long)} method has been 
called.
+     * @param windowId The next windowId of the parent operator.
+     */
+    void beginWindow(long windowId);
+
+    /**
+     * This signals that the parent {@link com.datatorrent.api.Operator}'s
+     * {@link com.datatorrent.api.Operator#endWindow()} method has been called.
+     */
+    void endWindow();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/SpillableComplexComponent.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/SpillableComplexComponent.java
 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/SpillableComplexComponent.java
new file mode 100644
index 0000000..d157ba0
--- /dev/null
+++ 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/SpillableComplexComponent.java
@@ -0,0 +1,126 @@
+/**
+ * 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.apex.malhar.lib.state.spillable;
+
+import org.apache.apex.malhar.lib.state.spillable.Spillable.SpillableComponent;
+import org.apache.apex.malhar.lib.utils.serde.Serde;
+
+import com.datatorrent.api.Component;
+import com.datatorrent.api.Context.OperatorContext;
+
+
+/**
+ * This is a composite component containing spillable data structures. This 
should be used as
+ * a component inside {@link com.datatorrent.api.Operator}s.
+ */
+public interface SpillableComplexComponent extends Component<OperatorContext>, 
SpillableComponent
+{
+  /**
+   * This is a method for creating a {@link SpillableArrayList}. This method
+   * auto-generates an identifier for the data structure.
+   * @param <T> The type of data stored in the {@link SpillableArrayList}.
+   * @param bucket The bucket that this {@link SpillableArrayList} will be 
spilled too.
+   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableArrayList}.
+   * @return A {@link SpillableArrayList}.
+   */
+  <T> SpillableArrayList<T> newSpillableArrayList(long bucket, Serde<T, 
byte[]> serde);
+
+  /**
+   * This is a method for creating a {@link SpillableArrayList}.
+   * @param <T> The type of data stored in the {@link SpillableArrayList}.
+   * @param identifier The identifier for this {@link SpillableArrayList}.
+   * @param bucket The bucket that this {@link SpillableArrayList} will be 
spilled too.
+   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableArrayList}.
+   * @return A {@link SpillableArrayList}.
+   */
+  <T> SpillableArrayList<T> newSpillableArrayList(byte[] identifier, long 
bucket, Serde<T, byte[]> serde);
+
+  /**
+   * This is a method for creating a {@link SpillableByteMap}. This method
+   * auto-generates an identifier for the data structure.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values.
+   * @param bucket The bucket that this {@link SpillableByteMap} will be 
spilled too.
+   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
+   * @param serdeValue The Serializer/Deserializer to use for the map's values.
+   * @return A {@link SpillableByteMap}.
+   */
+  <K, V> SpillableByteMap<K, V> newSpillableByteMap(long bucket, Serde<K, 
byte[]> serdeKey,
+      Serde<V, byte[]> serdeValue);
+
+  /**
+   * This is a method for creating a {@link SpillableByteMap}.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values.
+   * @param identifier The identifier for this {@link SpillableByteMap}.
+   * @param bucket The bucket that this {@link SpillableByteMap} will be 
spilled too.
+   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
+   * @param serdeValue The Serializer/Deserializer to use for the map's values.
+   * @return A {@link SpillableByteMap}.
+   */
+  <K, V> SpillableByteMap<K, V> newSpillableByteMap(byte[] identifier, long 
bucket,
+      Serde<K, byte[]> serdeKey, Serde<V, byte[]> serdeValue);
+
+  /**
+   * This is a method for creating a {@link SpillableByteArrayListMultimap}. 
This method
+   * auto-generates an identifier for the data structure.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values in the map's lists.
+   * @param bucket The bucket that this {@link SpillableByteArrayListMultimap} 
will be spilled too.
+   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
+   * @param serdeValue The Serializer/Deserializer to use for the values in 
the map's lists.
+   * @return A {@link SpillableByteArrayListMultimap}.
+   */
+  <K, V> SpillableByteArrayListMultimap<K, V> 
newSpillableByteArrayListMultimap(long bucket, Serde<K,
+      byte[]> serdeKey, Serde<V, byte[]> serdeValue);
+
+  /**
+   * This is a method for creating a {@link SpillableByteArrayListMultimap}.
+   * @param <K> The type of the keys.
+   * @param <V> The type of the values in the map's lists.
+   * @param identifier The identifier for this {@link 
SpillableByteArrayListMultimap}.
+   * @param bucket The bucket that this {@link SpillableByteArrayListMultimap} 
will be spilled too.
+   * @param serdeKey The Serializer/Deserializer to use for the map's keys.
+   * @param serdeValue The Serializer/Deserializer to use for the values in 
the map's lists.
+   * @return A {@link SpillableByteArrayListMultimap}.
+   */
+  <K, V> SpillableByteArrayListMultimap<K, V> 
newSpillableByteArrayListMultimap(byte[] identifier, long bucket,
+      Serde<K, byte[]> serdeKey,
+      Serde<V, byte[]> serdeValue);
+
+  /**
+   * This is a method for creating a {@link SpillableQueue}. This method
+   * auto-generates an identifier for the data structure.
+   * @param <T> The type of the data stored in the {@link SpillableQueue}.
+   * @param bucket The bucket that this {@link SpillableQueue} will be spilled 
too.
+   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableQueue}.
+   * @return A {@link SpillableQueue}.
+   */
+  <T> SpillableQueue<T> newSpillableQueue(long bucket, Serde<T, byte[]> serde);
+
+  /**
+   * This is a method for creating a {@link SpillableQueue}.
+   * @param <T> The type of the data stored in the {@link SpillableQueue}.
+   * @param identifier The identifier for this {@link 
SpillableByteArrayListMultimap}.
+   * @param bucket The bucket that this {@link SpillableQueue} will be spilled 
too.
+   * @param serde The Serializer/Deserializer to use for data stored in the 
{@link SpillableQueue}.
+   * @return A {@link SpillableQueue}.
+   */
+  <T> SpillableQueue<T> newSpillableQueue(byte[] identifier, long bucket, 
Serde<T, byte[]> serde);
+}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/74ca9236/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/package-info.java
----------------------------------------------------------------------
diff --git 
a/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/package-info.java
 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/package-info.java
new file mode 100644
index 0000000..0eec387
--- /dev/null
+++ 
b/library/src/main/java/org/apache/apex/malhar/lib/state/spillable/package-info.java
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+@org.apache.hadoop.classification.InterfaceStability.Unstable
+package org.apache.apex.malhar.lib.state.spillable;

Reply via email to