Cleaned up properties descriptions
Renamed some properties
Cleaned up categories
Cleaned up tags
Renamed some classes to improve clarity
Conflicts:
contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
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/dd15161d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/tree/dd15161d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/diff/dd15161d
Branch: refs/heads/master
Commit: dd15161de741bd1d2fbea50c972954fbbb098d24
Parents: 56de133
Author: Timothy Farkas <[email protected]>
Authored: Mon Jul 27 14:53:12 2015 -0700
Committer: thomas <[email protected]>
Committed: Mon Jul 27 19:50:31 2015 -0700
----------------------------------------------------------------------
.../apachelog/ApacheLogInputGenerator.java | 5 +-
.../couchdb/CouchDBPOJOOutputOperator.java | 9 +-
.../couchdb/MapBasedCouchDbOutputOperator.java | 4 +-
.../contrib/memsql/MemsqlPOJOInputOperator.java | 85 +++++++----
.../datatorrent/contrib/ruby/RubyOperator.java | 4 +-
.../memsql/AbstractMemsqlInputOperatorTest.java | 4 +-
.../datatorrent/lib/algo/AllAfterMatchMap.java | 2 +-
.../com/datatorrent/lib/algo/BottomNMap.java | 7 +-
.../datatorrent/lib/algo/BottomNUniqueMap.java | 7 +-
.../lib/algo/CompareExceptCountMap.java | 4 +-
.../java/com/datatorrent/lib/algo/Distinct.java | 2 +-
.../com/datatorrent/lib/algo/DistinctMap.java | 4 +-
.../com/datatorrent/lib/algo/FilterKeyVals.java | 6 +-
.../com/datatorrent/lib/algo/FilterKeysMap.java | 24 +++-
.../com/datatorrent/lib/algo/FilterValues.java | 28 +++-
.../java/com/datatorrent/lib/algo/FirstN.java | 4 +-
.../com/datatorrent/lib/algo/InsertSort.java | 4 +-
.../datatorrent/lib/algo/InsertSortDesc.java | 4 +-
.../com/datatorrent/lib/algo/InvertIndex.java | 4 +-
.../datatorrent/lib/algo/InvertIndexArray.java | 4 +-
.../com/datatorrent/lib/algo/LastMatchMap.java | 4 +-
.../datatorrent/lib/algo/LeastFrequentKey.java | 137 ------------------
.../lib/algo/LeastFrequentKeyMap.java | 4 +-
.../lib/algo/LeastFrequentKeyValueMap.java | 4 +-
.../lib/algo/LeastFrequentValue.java | 137 ++++++++++++++++++
.../com/datatorrent/lib/algo/MatchAllMap.java | 2 +-
.../com/datatorrent/lib/algo/MatchAnyMap.java | 2 +-
.../java/com/datatorrent/lib/algo/MatchMap.java | 11 ++
.../datatorrent/lib/algo/MergeSortNumber.java | 2 +-
.../datatorrent/lib/algo/MostFrequentKey.java | 140 -------------------
.../lib/algo/MostFrequentKeyMap.java | 2 +-
.../lib/algo/MostFrequentKeyValueMap.java | 2 +-
.../datatorrent/lib/algo/MostFrequentValue.java | 140 +++++++++++++++++++
.../java/com/datatorrent/lib/algo/TopN.java | 4 +-
.../com/datatorrent/lib/algo/TopNUnique.java | 6 +-
.../com/datatorrent/lib/algo/UniqueCounter.java | 17 ++-
.../snapshot/AppDataSnapshotServerPOJO.java | 6 +-
.../ByteArrayToStringConverterOperator.java | 3 +
.../MapToKeyHashValuePairConverter.java | 34 ++---
.../converter/MapToKeyValuePairConverter.java | 17 +--
.../StringValueToNumberConverterForMap.java | 7 +-
.../lib/db/jdbc/AbstractJdbcInputOperator.java | 9 +-
.../lib/io/AbstractHttpInputOperator.java | 21 ++-
.../datatorrent/lib/io/HttpGetMapOperator.java | 2 +-
.../lib/io/HttpJsonChunksInputOperator.java | 2 +-
.../lib/io/HttpLinesInputOperator.java | 2 +-
.../lib/io/PubSubWebSocketInputOperator.java | 10 +-
.../lib/io/PubSubWebSocketOutputOperator.java | 12 +-
.../lib/io/SimpleSinglePortInputOperator.java | 3 +-
.../lib/io/WebSocketInputOperator.java | 4 +-
.../lib/io/WebSocketOutputOperator.java | 6 +-
.../com/datatorrent/lib/io/fs/FileSplitter.java | 17 ++-
.../lib/io/fs/TailFsInputOperator.java | 7 +-
.../lib/script/JavaScriptOperator.java | 2 +-
.../datatorrent/lib/util/BaseLineTokenizer.java | 4 +-
.../datatorrent/lib/util/BaseMatchOperator.java | 50 ++++---
.../lib/util/JavaScriptFilterOperator.java | 6 +-
.../lib/algo/LeastFrequentKeyTest.java | 4 +-
.../lib/algo/MostFrequentKeyTest.java | 4 +-
59 files changed, 596 insertions(+), 465 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/main/java/com/datatorrent/contrib/apachelog/ApacheLogInputGenerator.java
----------------------------------------------------------------------
diff --git
a/contrib/src/main/java/com/datatorrent/contrib/apachelog/ApacheLogInputGenerator.java
b/contrib/src/main/java/com/datatorrent/contrib/apachelog/ApacheLogInputGenerator.java
index ec1c807..6b3caea 100644
---
a/contrib/src/main/java/com/datatorrent/contrib/apachelog/ApacheLogInputGenerator.java
+++
b/contrib/src/main/java/com/datatorrent/contrib/apachelog/ApacheLogInputGenerator.java
@@ -29,7 +29,8 @@ import org.slf4j.LoggerFactory;
* An implementation of input operator and activation listener that simulates
the apache logs.
* <p>
* @displayName Apache Log Input Generator
- * @tags input operator, log
+ * @category Test Bench
+ * @tags apache log, generator
* @since 0.9.4
*/
public class ApacheLogInputGenerator implements InputOperator,
Operator.ActivationListener<OperatorContext>
@@ -340,7 +341,7 @@ public class ApacheLogInputGenerator implements
InputOperator, Operator.Activati
{
this.refererFile = refererFile;
}
-
+
/**
* Output port that emits a string into DAG.
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
----------------------------------------------------------------------
diff --git
a/contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
b/contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
index afa500a..f0c3e4c 100644
---
a/contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
+++
b/contrib/src/main/java/com/datatorrent/contrib/couchdb/CouchDBPOJOOutputOperator.java
@@ -36,14 +36,19 @@ public class CouchDBPOJOOutputOperator extends
AbstractCouchDBOutputOperator<Obj
@NotNull
private String expressionForDocId;
- /*
- * An Expression to extract value of document Id from input POJO.
+ /**
+ * Gets the getter expression for the document Id.
+ * @return The document Id.
*/
public String getExpressionForDocId()
{
return expressionForDocId;
}
+ /**
+ * An Expression to extract value of document Id from an input POJO.
+ * @param expressionForDocId The getter expression for the document Id.
+ */
public void setExpressionForDocId(String expressionForDocId)
{
this.expressionForDocId = expressionForDocId;
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/main/java/com/datatorrent/contrib/couchdb/MapBasedCouchDbOutputOperator.java
----------------------------------------------------------------------
diff --git
a/contrib/src/main/java/com/datatorrent/contrib/couchdb/MapBasedCouchDbOutputOperator.java
b/contrib/src/main/java/com/datatorrent/contrib/couchdb/MapBasedCouchDbOutputOperator.java
index e8cf001..c2cfce1 100644
---
a/contrib/src/main/java/com/datatorrent/contrib/couchdb/MapBasedCouchDbOutputOperator.java
+++
b/contrib/src/main/java/com/datatorrent/contrib/couchdb/MapBasedCouchDbOutputOperator.java
@@ -21,8 +21,8 @@ import java.util.Map;
* Implementation of {@link AbstractCouchDBOutputOperator} that saves a Map in
the couch database. <br/>
* <p>
* @displayName Map Based CouchDb Output Operator
- * @category Database
- * @tags output operator
+ * @category Output
+ * @tags couchDb, database, nosql
* @since 0.3.5
*/
public class MapBasedCouchDbOutputOperator extends
AbstractCouchDBOutputOperator<Map<Object, Object>>
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
----------------------------------------------------------------------
diff --git
a/contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
b/contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
index 64d0227..6022c3d 100644
---
a/contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
+++
b/contrib/src/main/java/com/datatorrent/contrib/memsql/MemsqlPOJOInputOperator.java
@@ -38,10 +38,11 @@ import org.slf4j.LoggerFactory;
/**
* <p>
* MemsqlPOJOInputOperator</p>
+ *
* A Generic implementation of AbstractMemsqlInputOperator which gets field
values from memsql database columns and sets in a POJO.
* User should also provide a query to fetch the rows from database. This
query is run continuously to fetch new data and
* hence should be parameterized. The parameters that can be used are %t for
table name, %p for primary key, %s for start value
- * and %l for limit. The start value is continuously updated with the value of
a primary key column of the last row from
+ * and %l for batchSize. The start value is continuously updated with the
value of a primary key column of the last row from
* the result of the previous run of the query. The primary key column is also
identified by the user using a property.
*
* @displayName Memsql Input Operator
@@ -51,7 +52,7 @@ import org.slf4j.LoggerFactory;
public class MemsqlPOJOInputOperator extends
AbstractMemsqlInputOperator<Object>
{
@Min(1)
- private int limit = 10;
+ private int batchSize = 10;
@Min(0)
private Number startRow = 0;
@NotNull
@@ -77,60 +78,73 @@ public class MemsqlPOJOInputOperator extends
AbstractMemsqlInputOperator<Object>
private transient Class<?> objectClass = null;
private transient Class<?> primaryKeyColumnType;
- /*
- * Set of columns specified by User in case POJO needs to contain fields
specific to these columns only.
- * User should specify columns in same order as expressions for fields.
- */
public List<String> getColumns()
{
return columns;
}
+ /**
+ * The columns specified by user in case POJO needs to contain fields
specific to these columns only.
+ * User should specify columns in same order as expressions for fields.
+ * @param columns The columns.
+ */
public void setColumns(List<String> columns)
{
this.columns = columns;
}
- /*
- * Primary Key Column of table.
- * Gets the primary key column of Memsql table.
+ /**
+ * Gets the primary key column of the input table.
+ * @return The primary key column of the input table.
*/
public String getPrimaryKeyColumn()
{
return primaryKeyColumn;
}
+ /**
+ * The primary key column of the input table.
+ * @param primaryKeyColumn The primary key column of the input table.
+ */
public void setPrimaryKeyColumn(String primaryKeyColumn)
{
this.primaryKeyColumn = primaryKeyColumn;
}
- /*
- * User has the option to specify the start row.
+ /**
+ * The row to start reading from the input table at.
+ * @return The row to start reading from the input table at.
*/
public Number getStartRow()
{
return startRow;
}
+ /**
+ * Sets the row to start reading form the input table at.
+ * @param startRow The row to start reading from the input table at.
+ */
public void setStartRow(Number startRow)
{
this.startRow = startRow;
}
- public void setLimit(int limit)
+ /**
+ * Sets the batch size.
+ * @param batchSize The batch size.
+ */
+ public void setBatchSize(int batchSize)
{
- this.limit = limit;
+ this.batchSize = batchSize;
}
- /*
+ /**
* Records are read in batches of this size.
- * Gets the batch size.
* @return batchsize
*/
- public int getLimit()
+ public int getBatchSize()
{
- return limit;
+ return batchSize;
}
/*
@@ -152,43 +166,56 @@ public class MemsqlPOJOInputOperator extends
AbstractMemsqlInputOperator<Object>
this.outputClass = outputClass;
}
- /*
- * Parameterized query with parameters such as %t for table name , %p for
primary key, %s for start value and %l for limit.
- * Example of retrieveQuery:
- * select * from %t where %p > %s limit %l;
+ /**
+ * Gets the query used to extract data from memsql.
+ * @return The query.
*/
public String getQuery()
{
return query;
}
+ /**
+ * Parameterized query with parameters such as %t for table name , %p for
primary key, %s for start value and %l for batchSize.
+ * Example of retrieveQuery:
+ * select * from %t where %p > %s batchSize %l;
+ */
public void setQuery(String query)
{
this.query = query.replace("%t", tablename);
}
- /*
- * An ArrayList of Java expressions that will yield the memsql column value
to be set in output object.
- * Each expression corresponds to one column in the Memsql table.
+ /**
+ * Gets the getter expressions for extracting data from POJOs.
+ * @return The getter expressions for extracting data from pojos.
*/
public List<String> getExpressions()
{
return expressions;
}
+ /**
+ * An ArrayList of Java expressions that will yield the memsql column value
to be set in output object.
+ * Each expression corresponds to one column in the Memsql table.
+ */
public void setExpressions(List<String> expressions)
{
this.expressions = expressions;
}
- /*
- * Tablename in memsql.
+ /**
+ * Gets the name of the table that is read from memsql.
+ * @return The name of the table that is read from memsql.
*/
public String getTablename()
{
return tablename;
}
+ /**
+ * The table name in memsql to read data from.
+ * @param tablename The table name.
+ */
public void setTablename(String tablename)
{
this.tablename = tablename;
@@ -246,7 +273,7 @@ public class MemsqlPOJOInputOperator extends
AbstractMemsqlInputOperator<Object>
query = query.replace("%p", primaryKeyColumn);
}
if (query.contains("%l")) {
- query = query.replace("%l", limit + "");
+ query = query.replace("%l", batchSize + "");
}
statement.close();
@@ -366,10 +393,10 @@ public class MemsqlPOJOInputOperator extends
AbstractMemsqlInputOperator<Object>
return obj;
}
- /*
+ /**
* This method replaces the parameters in Query with actual values given by
user.
* Example of retrieveQuery:
- * select * from %t where %p > %s limit %l;
+ * select * from %t where %p > %s batchSize %l;
*/
@Override
public String queryToRetrieveData()
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/main/java/com/datatorrent/contrib/ruby/RubyOperator.java
----------------------------------------------------------------------
diff --git
a/contrib/src/main/java/com/datatorrent/contrib/ruby/RubyOperator.java
b/contrib/src/main/java/com/datatorrent/contrib/ruby/RubyOperator.java
index 35427e0..d4bc916 100644
--- a/contrib/src/main/java/com/datatorrent/contrib/ruby/RubyOperator.java
+++ b/contrib/src/main/java/com/datatorrent/contrib/ruby/RubyOperator.java
@@ -29,12 +29,12 @@ import com.datatorrent.lib.script.ScriptOperator;
* <p>
*
* WARNING: EXPERIMENTAL USE ONLY! This operator depends on jruby which has
- * a transitive dependency on an incompatible version of ASM that breaks
+ * a transitive dependency on an incompatible version of ASM that breaks
* webservice in stram.
*
* @displayName Ruby Operator
* @category Scripting
- * @tags script operator, map, string
+ * @tags script, map, string
* @since 1.0.4
*/
public class RubyOperator extends ScriptOperator {
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/contrib/src/test/java/com/datatorrent/contrib/memsql/AbstractMemsqlInputOperatorTest.java
----------------------------------------------------------------------
diff --git
a/contrib/src/test/java/com/datatorrent/contrib/memsql/AbstractMemsqlInputOperatorTest.java
b/contrib/src/test/java/com/datatorrent/contrib/memsql/AbstractMemsqlInputOperatorTest.java
index abf2969..4cd92f6 100644
---
a/contrib/src/test/java/com/datatorrent/contrib/memsql/AbstractMemsqlInputOperatorTest.java
+++
b/contrib/src/test/java/com/datatorrent/contrib/memsql/AbstractMemsqlInputOperatorTest.java
@@ -181,7 +181,7 @@ public class AbstractMemsqlInputOperatorTest
OperatorContextTestHelper.TestIdOperatorContext context = new
OperatorContextTestHelper.TestIdOperatorContext(OPERATOR_ID, attributeMap);
MemsqlPOJOInputOperator inputOperator = new MemsqlPOJOInputOperator();
createStore((MemsqlStore)inputOperator.getStore(), true);
- inputOperator.setLimit(10);
+ inputOperator.setBatchSize(10);
inputOperator.setTablename(FQ_TABLE);
inputOperator.setPrimaryKeyColumn(INDEX_COLUMN);
ArrayList<String> expressions = new ArrayList<String>();
@@ -222,7 +222,7 @@ public class AbstractMemsqlInputOperatorTest
inputOperator.setQuery("select * from " + FQ_TABLE + " where " + "%p " +
">= " + "%s" + " LIMIT " + "%l" +";");
inputOperator.setStartRow(1);
- inputOperator.setLimit(10);
+ inputOperator.setBatchSize(10);
inputOperator.setup(context);
inputOperator.beginWindow(0);
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/AllAfterMatchMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/AllAfterMatchMap.java
b/library/src/main/java/com/datatorrent/lib/algo/AllAfterMatchMap.java
index fb109b7..aedc1e2 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/AllAfterMatchMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/AllAfterMatchMap.java
@@ -61,7 +61,7 @@ import com.datatorrent.lib.util.BaseMatchOperator;
* </p>
*
* @displayName Emit All After Match (Number)
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, compare, numeric, key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/BottomNMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/BottomNMap.java
b/library/src/main/java/com/datatorrent/lib/algo/BottomNMap.java
index f442a19..e04bd6b 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/BottomNMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/BottomNMap.java
@@ -49,7 +49,7 @@ import
com.datatorrent.lib.util.AbstractBaseNNonUniqueOperatorMap;
* </p>
*
* @displayName Bottom N
- * @category Algorithmic
+ * @category Stats and Aggregations
* @tags filter, rank, key value
*
* @since 0.3.3
@@ -91,9 +91,10 @@ public class BottomNMap<K, V> extends
AbstractBaseNNonUniqueOperatorMap<K, V>
{
bottom.emit(tuple);
}
-
+
/**
- * @param val Bottom N values to be returned
+ * Bottom N values to be returned.
+ * @param val Bottom N values to be returned.
*/
@Override
public void setN(int val)
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/BottomNUniqueMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/BottomNUniqueMap.java
b/library/src/main/java/com/datatorrent/lib/algo/BottomNUniqueMap.java
index 96d45eb..bd8f1c0 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/BottomNUniqueMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/BottomNUniqueMap.java
@@ -44,7 +44,7 @@ import
com.datatorrent.lib.util.AbstractBaseNUniqueOperatorMap;
* </p>
*
* @displayName Bottom N Unique Map
- * @category Algorithmic
+ * @category Stats and Aggregations
* @tags filter, rank, unique, key value
*
* @since 0.3.3
@@ -75,9 +75,10 @@ public class BottomNUniqueMap<K, V> extends
AbstractBaseNUniqueOperatorMap<K, V>
{
bottom.emit(tuple);
}
-
+
/**
- * @param val Bottom N unique tuples
+ * Bottom N unique tuples.
+ * @param val Bottom N unique tuples.
*/
@Override
public void setN(int val)
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/CompareExceptCountMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/CompareExceptCountMap.java
b/library/src/main/java/com/datatorrent/lib/algo/CompareExceptCountMap.java
index 30e8159..a609b05 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/CompareExceptCountMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/CompareExceptCountMap.java
@@ -53,8 +53,8 @@ import com.datatorrent.lib.util.UnifierSumNumber;
* <br>
* </p>
*
- * @displayName Compare Match and No Match Count
- * @category Algorithmic
+ * @displayName Compare Match and No Match Count
+ * @category Rules and Alerts
* @tags count, key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/Distinct.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/Distinct.java
b/library/src/main/java/com/datatorrent/lib/algo/Distinct.java
index 35a7c88..34e2757 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/Distinct.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/Distinct.java
@@ -47,7 +47,7 @@ import com.datatorrent.lib.util.BaseKeyOperator;
* </p>
*
* @displayName Emit Distinct
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, unique
*
* @since 0.3.3
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/DistinctMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/DistinctMap.java
b/library/src/main/java/com/datatorrent/lib/algo/DistinctMap.java
index 7629923..e7acc0f 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/DistinctMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/DistinctMap.java
@@ -44,8 +44,8 @@ import com.datatorrent.lib.util.UnifierHashMap;
* <br>
* </p>
*
- * @displayName Emit Distinct Keyval Pairs
- * @category Algorithmic
+ * @displayName Distinct Key Value Merge
+ * @category Stream Manipulators
* @tags filter, unique, key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/FilterKeyVals.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/FilterKeyVals.java
b/library/src/main/java/com/datatorrent/lib/algo/FilterKeyVals.java
index 56c3306..f1319d1 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/FilterKeyVals.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/FilterKeyVals.java
@@ -57,7 +57,7 @@ import com.datatorrent.lib.util.BaseKeyOperator;
* </p>
*
* @displayName Filter Keyval Pairs
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value
*
* @since 0.3.2
@@ -102,7 +102,7 @@ public class FilterKeyVals<K,V> extends BaseKeyOperator<K>
private transient HashMap<K,V> entry = new HashMap<K,V>(1);
/**
- * getter function for parameter inverse
+ * Gets the inverse property.
* @return inverse
*/
public boolean getInverse() {
@@ -110,7 +110,7 @@ public class FilterKeyVals<K,V> extends BaseKeyOperator<K>
}
/**
- * True means match; False means unmatched
+ * If true then only matches are emitted. If false then only non matches are
emitted.
* @param val
*/
public void setInverse(boolean val) {
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/FilterKeysMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/FilterKeysMap.java
b/library/src/main/java/com/datatorrent/lib/algo/FilterKeysMap.java
index 7596f07..7cd0f1f 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/FilterKeysMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/FilterKeysMap.java
@@ -52,7 +52,7 @@ import com.datatorrent.lib.util.UnifierHashMap;
* </p>
*
* @displayName Filter Keyval Pairs By Key Generic
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value
*
* @since 0.3.2
@@ -113,7 +113,7 @@ public class FilterKeysMap<K,V> extends BaseKeyOperator<K>
};
/**
- * getter function for parameter inverse
+ * If true then only matches are emitted. If false then only non matches are
emitted.
* @return inverse
*/
public boolean getInverse() {
@@ -122,7 +122,7 @@ public class FilterKeysMap<K,V> extends BaseKeyOperator<K>
/**
- * True means match; False means unmatched
+ * Sets the inverse property. If true then only matches are emitted. If
false then only non matches are emitted.
* @param val
*/
public void setInverse(boolean val) {
@@ -150,6 +150,24 @@ public class FilterKeysMap<K,V> extends BaseKeyOperator<K>
}
}
+ /**
+ * The keys to filter. The values in the map should be null.
+ * @param keys
+ */
+ public void setKeys(HashMap<K, V> keys)
+ {
+ this.keys = keys;
+ }
+
+ /**
+ * Gets the keys to filter.
+ * @return Returns a map containing the keys.
+ */
+ public HashMap<K, V> getKeys()
+ {
+ return keys;
+ }
+
/*
* Clears the filter list
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/FilterValues.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/FilterValues.java
b/library/src/main/java/com/datatorrent/lib/algo/FilterValues.java
index 738d9a5..a8d96eb 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/FilterValues.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/FilterValues.java
@@ -48,7 +48,7 @@ import com.datatorrent.api.annotation.Stateless;
* </p>
*
* @displayName Filter Values
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter
*
* @since 0.3.2
@@ -58,7 +58,7 @@ import com.datatorrent.api.annotation.Stateless;
public class FilterValues<T> extends BaseOperator
{
/**
- * The input port on which tuples are recieved.
+ * The input port on which tuples are received.
*/
public final transient DefaultInputPort<T> data = new DefaultInputPort<T>()
{
@@ -86,8 +86,7 @@ public class FilterValues<T> extends BaseOperator
boolean inverse = false;
/**
- * getter function for parameter inverse
- *
+ * Gets the inverse property.
* @return inverse
*/
public boolean getInverse()
@@ -96,7 +95,7 @@ public class FilterValues<T> extends BaseOperator
}
/**
- * True means match; False means unmatched
+ * If true then only matches are emitted. If false then only non matches are
emitted.
* @param val
*/
public void setInverse(boolean val)
@@ -131,6 +130,25 @@ public class FilterValues<T> extends BaseOperator
}
/**
+ * Gets the values to be filtered.
+ * @return The values to be filtered.
+ */
+ public HashMap<T, Object> getValues()
+ {
+ return values;
+ }
+
+ /**
+ * A map containing the values to be filtered. The values are set to be the
keys in the map, and the
+ * values are set to be null.
+ * @param values The values to be filtered.
+ */
+ public void setValues(HashMap<T, Object> values)
+ {
+ this.values = values;
+ }
+
+ /**
* Clears the filter
*/
public void clearValues()
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/FirstN.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/FirstN.java
b/library/src/main/java/com/datatorrent/lib/algo/FirstN.java
index 8677017..b0a502e 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/FirstN.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/FirstN.java
@@ -50,7 +50,7 @@ import com.datatorrent.lib.util.AbstractBaseNOperatorMap;
* </p>
*
* @displayName First N Keyval Pairs Matching Key
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value
*
* @since 0.3.2
@@ -96,7 +96,7 @@ public class FirstN<K,V> extends AbstractBaseNOperatorMap<K,
V>
{
keycount.clear();
}
-
+
/**
* First N number of KeyValue pairs for each Key.
* @param val
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/InsertSort.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/InsertSort.java
b/library/src/main/java/com/datatorrent/lib/algo/InsertSort.java
index aa306cd..9a84098 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/InsertSort.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/InsertSort.java
@@ -45,8 +45,8 @@ import com.datatorrent.lib.util.AbstractBaseSortOperator;
* </p>
*
* @displayName Sort Ascending
- * @category Algorithmic
- * @tags rank
+ * @category Stream Manipulators
+ * @tags rank, sort
*
* @since 0.3.3
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/InsertSortDesc.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/InsertSortDesc.java
b/library/src/main/java/com/datatorrent/lib/algo/InsertSortDesc.java
index ff908f3..cf8fc53 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/InsertSortDesc.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/InsertSortDesc.java
@@ -47,8 +47,8 @@ import java.util.PriorityQueue;
* <br>
* </p>
* @displayName Sort Descending
- * @category Algorithmic
- * @tags rank
+ * @category Stream Manipulators
+ * @tags rank, sort
*
* @since 0.3.2
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/InvertIndex.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/InvertIndex.java
b/library/src/main/java/com/datatorrent/lib/algo/InvertIndex.java
index 46bd87c..dbf542f 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/InvertIndex.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/InvertIndex.java
@@ -45,8 +45,8 @@ import com.datatorrent.lib.util.BaseKeyValueOperator;
* <br>
* </p>
*
- * @displayName Invert Keyval Pairs
- * @category Algorithmic
+ * @displayName Invert Key Value Pairs
+ * @category Stream Manipulators
* @tags key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/InvertIndexArray.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/InvertIndexArray.java
b/library/src/main/java/com/datatorrent/lib/algo/InvertIndexArray.java
index 6e3ec0b..cb6fa23 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/InvertIndexArray.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/InvertIndexArray.java
@@ -44,8 +44,8 @@ import com.datatorrent.lib.util.BaseKeyValueOperator;
* <br>
* </p>
*
- * @displayName Invert Keyval Pairs (Array)
- * @category Algorithmic
+ * @displayName Invert Key Value Pairs (Array)
+ * @category Stream Manipulators
* @tags key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/LastMatchMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/LastMatchMap.java
b/library/src/main/java/com/datatorrent/lib/algo/LastMatchMap.java
index dbe2045..4031697 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/LastMatchMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/LastMatchMap.java
@@ -26,7 +26,7 @@ import com.datatorrent.lib.util.BaseMatchOperator;
/**
* This operator filters the incoming stream of key value pairs by obtaining
the values corresponding to a specified key,
- * and comparing those values to a specified number. The last key value
pair, in each window, to satisfy the comparison is emitted.
+ * and comparing those values to a specified value. The last key value
pair, in each window, to satisfy the comparison is emitted.
* <p>
* A compare function is operated on a tuple value sub-classed from Number
based on the property "key", "value", and "cmp". Every tuple
* is checked and the last one that passes the condition is send during end of
window on port "last". The comparison is done by getting double
@@ -55,7 +55,7 @@ import com.datatorrent.lib.util.BaseMatchOperator;
* </p>
*
* @displayName Emit Last Match (Number)
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value, numeric
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKey.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKey.java
b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKey.java
deleted file mode 100644
index 3dfa68c..0000000
--- a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKey.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * Copyright (C) 2015 DataTorrent, Inc.
- *
- * Licensed 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 com.datatorrent.lib.algo;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import com.datatorrent.api.DefaultInputPort;
-import com.datatorrent.api.DefaultOutputPort;
-import com.datatorrent.api.annotation.OperatorAnnotation;
-import com.datatorrent.api.annotation.OutputPortFieldAnnotation;
-
-import com.datatorrent.lib.util.AbstractBaseFrequentKey;
-
-/**
- * This operator filters the incoming stream of values by emitting the value
or values (if there is a tie)
- * that occurred the fewest number of times within each window to the output
port "list".
- * One of the values is emitted to the output port "least" at the end of each
window.
- * <p>
- * Occurrences of each tuple is counted and at the end of window any of the
least frequent tuple is emitted on output port 'least'
- * All keys with same least frequency value least are emitted on output port
'list'.<br>
- * This module is an end of window module<br>
- * In case of a tie any of the least key would be emitted. The list port would
however have all the tied keys
- * <br>
- * <b>StateFull : Yes, </b> tuple are compared across application window(s).
<br>
- * <b>Partitions : Yes, </b> least keys are unified on output port. <br>
- * <br>
- * <b>Ports</b>:<br>
- * <b>data</b>: expects K<br>
- * <b>least</b>: emits HashMap<K,Integer>(1), Where K is the least
occurring key in the window.
- * In case of tie any of the least key would be emitted<br>
- * <b>list</b>: emits ArrayList<HashMap<K,Integer>(1)>, Where the
list includes all the keys that are least frequent<br>
- * <br>
- * </p>
- *
- * @displayName Emit Least Frequent Value
- * @category Algorithmic
- * @tags filter, count
- *
- * @since 0.3.3
- */
-
-@OperatorAnnotation(partitionable = true)
-public class LeastFrequentKey<K> extends AbstractBaseFrequentKey<K>
-{
- /**
- * The input port on which tuples are received.
- */
- public final transient DefaultInputPort<K> data = new DefaultInputPort<K>()
- {
- /**
- * Calls super.processTuple(tuple)
- */
- @Override
- public void process(K tuple)
- {
- processTuple(tuple);
- }
- };
-
- /**
- * The output port on which one of the tuples,
- * which occurred the least number of times,
- * is emitted.
- */
- @OutputPortFieldAnnotation(optional=true)
- public final transient DefaultOutputPort<HashMap<K, Integer>> least = new
DefaultOutputPort<HashMap<K, Integer>>()
- {
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public Unifier<HashMap<K, Integer>> getUnifier()
- {
- return new LeastFrequentKeyUnifier<K>();
- }
- };
-
- /**
- * The output port on which all the tuples,
- * which occurred the least number of times,
- * is emitted.
- */
- @OutputPortFieldAnnotation(optional=true)
- public final transient DefaultOutputPort<ArrayList<HashMap<K, Integer>>>
list = new DefaultOutputPort<ArrayList<HashMap<K, Integer>>>()
- {
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public Unifier<ArrayList<HashMap<K, Integer>>> getUnifier()
- {
- return new LeastFrequentKeyArrayUnifier<K>();
- }
- };
-
- /**
- * Emits tuple on port "least"
- * @param tuple
- */
- @Override
- public void emitTuple(HashMap<K, Integer> tuple)
- {
- least.emit(tuple);
- }
-
- /**
- * returns val1 < val2
- * @param val1
- * @param val2
- * @return val1 < val2
- */
- @Override
- public boolean compareCount(int val1, int val2)
- {
- return val1 < val2;
- }
-
- /**
- * Emits tuple on port "list"
- * @param tlist
- */
- @Override
- public void emitList(ArrayList<HashMap<K, Integer>> tlist)
- {
- list.emit(tlist);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyMap.java
b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyMap.java
index 0290d26..36e8e8e 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyMap.java
@@ -48,8 +48,8 @@ import com.datatorrent.lib.util.UnifierHashMapFrequent;
* <br>
* </p>
*
- * @displayName Emit Least Frequent Key
- * @category Algorithmic
+ * @displayName Emit Least Frequent Tuple Key
+ * @category Rules and Alerts
* @tags filter, key value, count
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyValueMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyValueMap.java
b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyValueMap.java
index f8550ee..895c8df 100644
---
a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyValueMap.java
+++
b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentKeyValueMap.java
@@ -66,8 +66,8 @@ import
com.datatorrent.lib.util.AbstractBaseFrequentKeyValueMap;
* <br>
* </p>
*
- * @displayName Emit Lest Frequent Keyval Pair
- * @category Algorithmic
+ * @displayName Emit Least Frequent Keyval Pair
+ * @category Rules and Alerts
* @tags filter, key value, count
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentValue.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentValue.java
b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentValue.java
new file mode 100644
index 0000000..af68ead
--- /dev/null
+++ b/library/src/main/java/com/datatorrent/lib/algo/LeastFrequentValue.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (C) 2015 DataTorrent, Inc.
+ *
+ * Licensed 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 com.datatorrent.lib.algo;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import com.datatorrent.api.DefaultInputPort;
+import com.datatorrent.api.DefaultOutputPort;
+import com.datatorrent.api.annotation.OperatorAnnotation;
+import com.datatorrent.api.annotation.OutputPortFieldAnnotation;
+
+import com.datatorrent.lib.util.AbstractBaseFrequentKey;
+
+/**
+ * This operator filters the incoming stream of values by emitting the value
or values (if there is a tie)
+ * that occurred the fewest number of times within each window to the output
port "list".
+ * One of the values is emitted to the output port "least" at the end of each
window.
+ * <p>
+ * Occurrences of each tuple is counted and at the end of window any of the
least frequent tuple is emitted on output port 'least'
+ * All keys with same least frequency value least are emitted on output port
'list'.<br>
+ * This module is an end of window module<br>
+ * In case of a tie any of the least key would be emitted. The list port would
however have all the tied keys
+ * <br>
+ * <b>StateFull : Yes, </b> tuple are compared across application window(s).
<br>
+ * <b>Partitions : Yes, </b> least keys are unified on output port. <br>
+ * <br>
+ * <b>Ports</b>:<br>
+ * <b>data</b>: expects K<br>
+ * <b>least</b>: emits HashMap<K,Integer>(1), Where K is the least
occurring key in the window.
+ * In case of tie any of the least key would be emitted<br>
+ * <b>list</b>: emits ArrayList<HashMap<K,Integer>(1)>, Where the
list includes all the keys that are least frequent<br>
+ * <br>
+ * </p>
+ *
+ * @displayName Emit Least Frequent Value
+ * @category Rules and Alerts
+ * @tags filter, count
+ *
+ * @since 0.3.3
+ */
+
+@OperatorAnnotation(partitionable = true)
+public class LeastFrequentValue<K> extends AbstractBaseFrequentKey<K>
+{
+ /**
+ * The input port on which tuples are received.
+ */
+ public final transient DefaultInputPort<K> data = new DefaultInputPort<K>()
+ {
+ /**
+ * Calls super.processTuple(tuple)
+ */
+ @Override
+ public void process(K tuple)
+ {
+ processTuple(tuple);
+ }
+ };
+
+ /**
+ * The output port on which one of the tuples,
+ * which occurred the least number of times,
+ * is emitted.
+ */
+ @OutputPortFieldAnnotation(optional=true)
+ public final transient DefaultOutputPort<HashMap<K, Integer>> least = new
DefaultOutputPort<HashMap<K, Integer>>()
+ {
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public Unifier<HashMap<K, Integer>> getUnifier()
+ {
+ return new LeastFrequentKeyUnifier<K>();
+ }
+ };
+
+ /**
+ * The output port on which all the tuples,
+ * which occurred the least number of times,
+ * is emitted.
+ */
+ @OutputPortFieldAnnotation(optional=true)
+ public final transient DefaultOutputPort<ArrayList<HashMap<K, Integer>>>
list = new DefaultOutputPort<ArrayList<HashMap<K, Integer>>>()
+ {
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public Unifier<ArrayList<HashMap<K, Integer>>> getUnifier()
+ {
+ return new LeastFrequentKeyArrayUnifier<K>();
+ }
+ };
+
+ /**
+ * Emits tuple on port "least"
+ * @param tuple
+ */
+ @Override
+ public void emitTuple(HashMap<K, Integer> tuple)
+ {
+ least.emit(tuple);
+ }
+
+ /**
+ * returns val1 < val2
+ * @param val1
+ * @param val2
+ * @return val1 < val2
+ */
+ @Override
+ public boolean compareCount(int val1, int val2)
+ {
+ return val1 < val2;
+ }
+
+ /**
+ * Emits tuple on port "list"
+ * @param tlist
+ */
+ @Override
+ public void emitList(ArrayList<HashMap<K, Integer>> tlist)
+ {
+ list.emit(tlist);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MatchAllMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/MatchAllMap.java
b/library/src/main/java/com/datatorrent/lib/algo/MatchAllMap.java
index 0780419..6fdbb6a 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/MatchAllMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/MatchAllMap.java
@@ -57,7 +57,7 @@ import com.datatorrent.lib.util.UnifierBooleanAnd;
* </p>
*
* @displayName Emit All Matching Values (Number)
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MatchAnyMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/MatchAnyMap.java
b/library/src/main/java/com/datatorrent/lib/algo/MatchAnyMap.java
index edccb83..1da1e7b 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/MatchAnyMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/MatchAnyMap.java
@@ -59,7 +59,7 @@ import com.datatorrent.lib.util.UnifierBooleanOr;
* </p>
*
* @displayName Emit Boolean For Match (Number)
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MatchMap.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/MatchMap.java
b/library/src/main/java/com/datatorrent/lib/algo/MatchMap.java
index dd2ff17..aafaa61 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/MatchMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/MatchMap.java
@@ -122,4 +122,15 @@ public class MatchMap<K,V extends Number> extends
BaseMatchOperator<K, V>
public void tupleNotMatched(Map<K, V> tuple)
{
}
+
+
+ /**
+ * The key in the input tuple whose value will be used for comparison.
+ * @param key The key in the input tuple whose value will be used for
comparison.
+ */
+ @Override
+ public void setKey(K key)
+ {
+ super.setKey(key);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MergeSortNumber.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/MergeSortNumber.java
b/library/src/main/java/com/datatorrent/lib/algo/MergeSortNumber.java
index 8237fa6..83d52dd 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/MergeSortNumber.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/MergeSortNumber.java
@@ -40,7 +40,7 @@ import java.util.ArrayList;
* 2. getUnifierInstance : Get unifier operator instance for output port,
(must return self instance).
* </p>
* @displayName Merge Sorted Lists (Number)
- * @category Algorithmic
+ * @category Stream Manipulators
* @tags rank, numeric
*
* @since 0.3.3
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKey.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKey.java
b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKey.java
deleted file mode 100644
index 6d6510a..0000000
--- a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKey.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Copyright (C) 2015 DataTorrent, Inc.
- *
- * Licensed 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 com.datatorrent.lib.algo;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import com.datatorrent.api.DefaultInputPort;
-import com.datatorrent.api.DefaultOutputPort;
-import com.datatorrent.api.annotation.OperatorAnnotation;
-
-import com.datatorrent.lib.util.AbstractBaseFrequentKey;
-import com.datatorrent.lib.util.UnifierArrayHashMapFrequent;
-import com.datatorrent.lib.util.UnifierHashMapFrequent;
-
-/**
- * This operator filters the incoming stream of values by emitting the value
or values (if there is a tie)
- * that occurred the largest number of times within each window to the output
port "list".
- * One of the values is emitted to the output port "least" at the end of each
window.
- * <p>
- * Occurrences of each tuple is counted and at the end of window any of the
most frequent tuple is emitted on output port least and all least frequent
- * tuples on output port list
- * </p>
- * <p>
- * This module is an end of window module<br>
- * In case of a tie any of the least key would be emitted. The list port would
however have all the tied keys
- * <br>
- * <b>StateFull : Yes</b>, Values are compared all over application window
can be > 1. <br>
- * <b>Partitions : Yes</b>, Result is unified on output port. <br>
- * <br>
- * <b>Ports</b>:<br>
- * <b>data</b>: expects K<br>
- * <b>most</b>: emits HashMap<K,Integer>(1), Where K is the least
occurring key in the window. In case of tie any of the least key would be
emitted<br>
- * <b>list</b>: emits ArrayList<HashMap<K,Integer>(1)>, Where the
list includes all the keys that are least frequent<br>
- * <br>
- * <b>Properties</b>: None<br>
- * <br>
- * <b>Compile time checks</b>: None<br>
- * <b>Specific run time checks</b>: None<br>
- * <br>
- * </p>
- * @displayName Emit Most Frequent Value
- * @category Algorithmic
- * @tags filter, count
- *
- * @since 0.3.2
- */
-
-@OperatorAnnotation(partitionable = true)
-public class MostFrequentKey<K> extends AbstractBaseFrequentKey<K>
-{
- /**
- * The input port which receives incoming tuples.
- */
- public final transient DefaultInputPort<K> data = new DefaultInputPort<K>()
- {
- /**
- * Calls super.processTuple(tuple)
- */
- @Override
- public void process(K tuple)
- {
- processTuple(tuple);
- }
- };
- /**
- * The output port on which all the tuples,
- * which occurred the most number of times,
- * is emitted.
- */
- public final transient DefaultOutputPort<HashMap<K, Integer>> most = new
DefaultOutputPort<HashMap<K, Integer>>()
- {
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public Unifier<HashMap<K, Integer>> getUnifier()
- {
- UnifierHashMapFrequent ret = new UnifierHashMapFrequent<K>();
- ret.setLeast(false);
- return ret;
- }
- };
-
-
- public final transient DefaultOutputPort<ArrayList<HashMap<K, Integer>>>
list = new DefaultOutputPort<ArrayList<HashMap<K, Integer>>>()
- {
- @SuppressWarnings({"rawtypes", "ConstantConditions"})
- @Override
- public Unifier<ArrayList<HashMap<K, Integer>>> getUnifier()
- {
- Unifier<ArrayList<HashMap<K, Integer>>> ret = new
UnifierArrayHashMapFrequent<K>();
- ((UnifierHashMapFrequent) ret).setLeast(false);
- return ret;
- }
- };
-
- /**
- * Emits tuple on port "most"
- * @param tuple
- */
- @Override
- public void emitTuple(HashMap<K, Integer> tuple)
- {
- most.emit(tuple);
- }
-
- /**
- * Emits tuple on port "list"
- * @param tlist
- */
- @Override
- public void emitList(ArrayList<HashMap<K, Integer>> tlist)
- {
- list.emit(tlist);
- }
-
- /**
- * returns val1 < val2
- * @param val1
- * @param val2
- * @return val1 > val2
- */
- @Override
- public boolean compareCount(int val1, int val2)
- {
- return val1 > val2;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyMap.java
b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyMap.java
index cbd62e5..b51d255 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyMap.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyMap.java
@@ -49,7 +49,7 @@ import com.datatorrent.lib.util.UnifierHashMapFrequent;
* </p>
*
* @displayName Emit Most Frequent Key
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value, count
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyValueMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyValueMap.java
b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyValueMap.java
index 0d1827e..582aca0 100644
---
a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyValueMap.java
+++
b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentKeyValueMap.java
@@ -69,7 +69,7 @@ import
com.datatorrent.lib.util.AbstractBaseFrequentKeyValueMap;
* </p>
*
* @displayName Emit Most Frequent Keyval Pair
- * @category Algorithmic
+ * @category Rules and Alerts
* @tags filter, key value, count
*
* @since 0.3.2
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/MostFrequentValue.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/algo/MostFrequentValue.java
b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentValue.java
new file mode 100644
index 0000000..93ad026
--- /dev/null
+++ b/library/src/main/java/com/datatorrent/lib/algo/MostFrequentValue.java
@@ -0,0 +1,140 @@
+/**
+ * Copyright (C) 2015 DataTorrent, Inc.
+ *
+ * Licensed 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 com.datatorrent.lib.algo;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import com.datatorrent.api.DefaultInputPort;
+import com.datatorrent.api.DefaultOutputPort;
+import com.datatorrent.api.annotation.OperatorAnnotation;
+
+import com.datatorrent.lib.util.AbstractBaseFrequentKey;
+import com.datatorrent.lib.util.UnifierArrayHashMapFrequent;
+import com.datatorrent.lib.util.UnifierHashMapFrequent;
+
+/**
+ * This operator filters the incoming stream of values by emitting the value
or values (if there is a tie)
+ * that occurred the largest number of times within each window to the output
port "list".
+ * One of the values is emitted to the output port "least" at the end of each
window.
+ * <p>
+ * Occurrences of each tuple is counted and at the end of window any of the
most frequent tuple is emitted on output port least and all least frequent
+ * tuples on output port list
+ * </p>
+ * <p>
+ * This module is an end of window module<br>
+ * In case of a tie any of the least key would be emitted. The list port would
however have all the tied keys
+ * <br>
+ * <b>StateFull : Yes</b>, Values are compared all over application window
can be > 1. <br>
+ * <b>Partitions : Yes</b>, Result is unified on output port. <br>
+ * <br>
+ * <b>Ports</b>:<br>
+ * <b>data</b>: expects K<br>
+ * <b>most</b>: emits HashMap<K,Integer>(1), Where K is the least
occurring key in the window. In case of tie any of the least key would be
emitted<br>
+ * <b>list</b>: emits ArrayList<HashMap<K,Integer>(1)>, Where the
list includes all the keys that are least frequent<br>
+ * <br>
+ * <b>Properties</b>: None<br>
+ * <br>
+ * <b>Compile time checks</b>: None<br>
+ * <b>Specific run time checks</b>: None<br>
+ * <br>
+ * </p>
+ * @displayName Emit Most Frequent Value
+ * @category Rules and Alerts
+ * @tags filter, count
+ *
+ * @since 0.3.2
+ */
+
+@OperatorAnnotation(partitionable = true)
+public class MostFrequentValue<K> extends AbstractBaseFrequentKey<K>
+{
+ /**
+ * The input port which receives incoming tuples.
+ */
+ public final transient DefaultInputPort<K> data = new DefaultInputPort<K>()
+ {
+ /**
+ * Calls super.processTuple(tuple)
+ */
+ @Override
+ public void process(K tuple)
+ {
+ processTuple(tuple);
+ }
+ };
+ /**
+ * The output port on which all the tuples,
+ * which occurred the most number of times,
+ * is emitted.
+ */
+ public final transient DefaultOutputPort<HashMap<K, Integer>> most = new
DefaultOutputPort<HashMap<K, Integer>>()
+ {
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public Unifier<HashMap<K, Integer>> getUnifier()
+ {
+ UnifierHashMapFrequent ret = new UnifierHashMapFrequent<K>();
+ ret.setLeast(false);
+ return ret;
+ }
+ };
+
+
+ public final transient DefaultOutputPort<ArrayList<HashMap<K, Integer>>>
list = new DefaultOutputPort<ArrayList<HashMap<K, Integer>>>()
+ {
+ @SuppressWarnings({"rawtypes", "ConstantConditions"})
+ @Override
+ public Unifier<ArrayList<HashMap<K, Integer>>> getUnifier()
+ {
+ Unifier<ArrayList<HashMap<K, Integer>>> ret = new
UnifierArrayHashMapFrequent<K>();
+ ((UnifierHashMapFrequent) ret).setLeast(false);
+ return ret;
+ }
+ };
+
+ /**
+ * Emits tuple on port "most"
+ * @param tuple
+ */
+ @Override
+ public void emitTuple(HashMap<K, Integer> tuple)
+ {
+ most.emit(tuple);
+ }
+
+ /**
+ * Emits tuple on port "list"
+ * @param tlist
+ */
+ @Override
+ public void emitList(ArrayList<HashMap<K, Integer>> tlist)
+ {
+ list.emit(tlist);
+ }
+
+ /**
+ * returns val1 < val2
+ * @param val1
+ * @param val2
+ * @return val1 > val2
+ */
+ @Override
+ public boolean compareCount(int val1, int val2)
+ {
+ return val1 > val2;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/TopN.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/TopN.java
b/library/src/main/java/com/datatorrent/lib/algo/TopN.java
index a0cd903..5ec8dfe 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/TopN.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/TopN.java
@@ -48,7 +48,7 @@ import
com.datatorrent.lib.util.AbstractBaseNNonUniqueOperatorMap;
* </p>
*
* @displayName Top N Values Per Key
- * @category Algorithmic
+ * @category Stats and Aggregations
* @tags filter, rank
*
* @since 0.3.3
@@ -101,7 +101,7 @@ public class TopN<K, V> extends
AbstractBaseNNonUniqueOperatorMap<K,V> implement
}
}
}
-
+
/**
* Top N tuples per key
* @param val
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/TopNUnique.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/TopNUnique.java
b/library/src/main/java/com/datatorrent/lib/algo/TopNUnique.java
index 10a53d3..4ccef65 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/TopNUnique.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/TopNUnique.java
@@ -24,7 +24,7 @@ import com.datatorrent.api.annotation.OperatorAnnotation;
import com.datatorrent.lib.util.AbstractBaseNUniqueOperatorMap;
/**
- * This operator orders tuples per key and emits the top N unique tuples per
key at the end of the window.
+ * This operator orders tuples per key and emits the top N unique values per
key at the end of the window.
* <p>
* Orders tuples per key and emits top N unique tuples per key on end of
window.
* </p>
@@ -47,7 +47,7 @@ import
com.datatorrent.lib.util.AbstractBaseNUniqueOperatorMap;
* </p>
*
* @displayName Top N Unique Values Per Key
- * @category Algorithmic
+ * @category Stats and Aggregations
* @tags filter, rank
*
* @since 0.3.2
@@ -80,7 +80,7 @@ public class TopNUnique<K, V> extends
AbstractBaseNUniqueOperatorMap<K, V>
{
top.emit(tuple);
}
-
+
/**
* Top N unique tuples per key
* @param val
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/algo/UniqueCounter.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/algo/UniqueCounter.java
b/library/src/main/java/com/datatorrent/lib/algo/UniqueCounter.java
index 66fbeb5..460cf4e 100644
--- a/library/src/main/java/com/datatorrent/lib/algo/UniqueCounter.java
+++ b/library/src/main/java/com/datatorrent/lib/algo/UniqueCounter.java
@@ -27,7 +27,7 @@ import com.datatorrent.lib.util.BaseUniqueKeyCounter;
import com.datatorrent.lib.util.UnifierHashMapSumKeys;
/**
- * This operator counts the number of times a key exists in a window. A
map from keys to counts is emitted at the end of each window.
+ * This operator counts the number of times a tuple exists in a window. A
map from tuples to counts is emitted at the end of each window.
* <p>
* Counts the number of times a key exists in a window; Count is emitted at
end of window in a single HashMap.
* </p>
@@ -44,8 +44,8 @@ import com.datatorrent.lib.util.UnifierHashMapSumKeys;
* <br>
* </p>
*
- * @displayName Count Unique Keys
- * @category Algorithmic
+ * @displayName Count Unique Tuples
+ * @category Stats and Aggregations
* @tags count
*
* @since 0.3.2
@@ -108,10 +108,21 @@ public class UniqueCounter<K> extends
BaseUniqueKeyCounter<K>
}
}
+ /**
+ * Gets the cumulative mode.
+ * @return The cumulative mode.
+ */
public boolean isCumulative() {
return cumulative;
}
+ /**
+ * If enabled then the unique keys is counted and maintained in memory for
the life of the operator. If not enabled
+ * keys are counted a per window bases.<br/>
+ * <b>Note:</b> If cumulative mode is enabled and the operator receives many
unique keys, then this operator
+ * could eventually run out of memory.
+ * @param cumulative
+ */
public void setCumulative(boolean cumulative) {
this.cumulative = cumulative;
}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
b/library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
index bfd578a..0f87ec0 100644
---
a/library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
+++
b/library/src/main/java/com/datatorrent/lib/appdata/snapshot/AppDataSnapshotServerPOJO.java
@@ -28,9 +28,9 @@ import com.datatorrent.lib.appdata.gpo.GPOUtils;
/**
* This operator accepts a list of POJOs, and serves the data under the {@link
SnapshotSchema}.
* Each POJO represents a row in the table, and the full list of POJOs
represents a table.
- * @displayName App Data Snapshot Server
- * @category App Data
- * @tags appdata, snapshot, pojo
+ * @displayName App Data Snapshot POJO Server
+ * @category Output
+ * @tags app data, snapshot, pojo
*/
public class AppDataSnapshotServerPOJO extends
AbstractAppDataSnapshotServer<Object>
{
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/converter/ByteArrayToStringConverterOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/converter/ByteArrayToStringConverterOperator.java
b/library/src/main/java/com/datatorrent/lib/converter/ByteArrayToStringConverterOperator.java
index 84651c3..da29ce5 100644
---
a/library/src/main/java/com/datatorrent/lib/converter/ByteArrayToStringConverterOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/converter/ByteArrayToStringConverterOperator.java
@@ -23,6 +23,9 @@ import java.nio.charset.Charset;
/**
* This operator converts Byte Array to String. User gets the option of
providing character Encoding.
*
+ * @category Tuple Converters
+ * @tags byte, string
+ *
* @since 2.1.0
*/
public class ByteArrayToStringConverterOperator extends BaseOperator
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/converter/MapToKeyHashValuePairConverter.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/converter/MapToKeyHashValuePairConverter.java
b/library/src/main/java/com/datatorrent/lib/converter/MapToKeyHashValuePairConverter.java
index bda4743..95b6016 100644
---
a/library/src/main/java/com/datatorrent/lib/converter/MapToKeyHashValuePairConverter.java
+++
b/library/src/main/java/com/datatorrent/lib/converter/MapToKeyHashValuePairConverter.java
@@ -13,24 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/*
-* Copyright (c) 2015 DataTorrent, Inc. ALL Rights Reserved.
-*
-* Licensed 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 com.datatorrent.lib.converter;
-import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -38,15 +22,15 @@ import com.datatorrent.common.util.BaseOperator;
import com.datatorrent.api.DefaultInputPort;
import com.datatorrent.api.DefaultOutputPort;
import com.datatorrent.lib.util.KeyHashValPair;
-import com.datatorrent.lib.util.KeyValPair;
/**
- *
- * This operator outputs key value pair for each entry in input Map
- *
+ *
+ * This operator outputs key value pair for each entry in input Map
+ *
* @displayName Map to key-value pair converter
- * @category Converter
- *
+ * @category Tuple Converters
+ * @tags key value
+ *
*/
public class MapToKeyHashValuePairConverter<K, V> extends BaseOperator {
@@ -57,11 +41,11 @@ public class MapToKeyHashValuePairConverter<K, V> extends
BaseOperator {
{
@Override
public void process(Map<K, V> tuple)
- {
+ {
for(Entry<K, V> entry:tuple.entrySet())
{
- output.emit(new KeyHashValPair<K, V>(entry.getKey(),
entry.getValue()));
- }
+ output.emit(new KeyHashValPair<K, V>(entry.getKey(),
entry.getValue()));
+ }
}
};
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/converter/MapToKeyValuePairConverter.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/converter/MapToKeyValuePairConverter.java
b/library/src/main/java/com/datatorrent/lib/converter/MapToKeyValuePairConverter.java
index 034a706..94f5fbd 100644
---
a/library/src/main/java/com/datatorrent/lib/converter/MapToKeyValuePairConverter.java
+++
b/library/src/main/java/com/datatorrent/lib/converter/MapToKeyValuePairConverter.java
@@ -25,12 +25,13 @@ import com.datatorrent.api.DefaultInputPort;
import com.datatorrent.api.DefaultOutputPort;
/**
- *
- * This operator outputs key value pair for each entry in input Map
- *
+ *
+ * This operator outputs key value pair for each entry in input Map
+ *
* @displayName Map to key-value pair converter
- * @category Converter
- *
+ * @category Tuple Converters
+ * @tags key value
+ *
*/
public class MapToKeyValuePairConverter<K, V> extends BaseOperator {
@@ -41,11 +42,11 @@ public class MapToKeyValuePairConverter<K, V> extends
BaseOperator {
{
@Override
public void process(Map<K, V> tuple)
- {
+ {
for(Entry<K, V> entry:tuple.entrySet())
{
- output.emit(new KeyValPair<K, V>(entry.getKey(), entry.getValue()));
- }
+ output.emit(new KeyValPair<K, V>(entry.getKey(), entry.getValue()));
+ }
}
};
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/converter/StringValueToNumberConverterForMap.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/converter/StringValueToNumberConverterForMap.java
b/library/src/main/java/com/datatorrent/lib/converter/StringValueToNumberConverterForMap.java
index 17a38bb..a5ca699 100644
---
a/library/src/main/java/com/datatorrent/lib/converter/StringValueToNumberConverterForMap.java
+++
b/library/src/main/java/com/datatorrent/lib/converter/StringValueToNumberConverterForMap.java
@@ -24,12 +24,13 @@ import com.datatorrent.api.DefaultInputPort;
import com.datatorrent.api.DefaultOutputPort;
/**
- *
+ *
* This operator converts Map<K, String> to Map<K, Number> for numeric string
values
*
* @displayName String to Number value converter for Map
- * @category Converter
- *
+ * @category Tuple Converters
+ * @tags string
+ *
*/
public class StringValueToNumberConverterForMap<K> extends BaseOperator {
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/db/jdbc/AbstractJdbcInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/db/jdbc/AbstractJdbcInputOperator.java
b/library/src/main/java/com/datatorrent/lib/db/jdbc/AbstractJdbcInputOperator.java
index e01d72e..1ab63d0 100644
---
a/library/src/main/java/com/datatorrent/lib/db/jdbc/AbstractJdbcInputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/db/jdbc/AbstractJdbcInputOperator.java
@@ -36,8 +36,8 @@ import com.datatorrent.lib.db.AbstractStoreInputOperator;
* This is an abstract class. Sub-classes need to implement {@link
#queryToRetrieveData()} and {@link #getTuple(ResultSet)}.
* </p>
* @displayName Abstract JDBC Input
- * @category Database
- * @tags input operator
+ * @category Input
+ * @tags database, sql
*
* @param <T> The tuple type
* @since 0.9.4
@@ -65,11 +65,6 @@ public abstract class AbstractJdbcInputOperator<T> extends
AbstractStoreInputOpe
public abstract String queryToRetrieveData();
/**
- * The output port that will emit tuples read from the database.
- */
- public final transient DefaultOutputPort<T> outputPort = new
DefaultOutputPort<T>();
-
- /**
* This executes the query to retrieve result from database.
* It then converts each row into tuple and emit that into output port.
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/AbstractHttpInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/AbstractHttpInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/AbstractHttpInputOperator.java
index 08e8afa..619ce5f 100644
---
a/library/src/main/java/com/datatorrent/lib/io/AbstractHttpInputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/io/AbstractHttpInputOperator.java
@@ -56,14 +56,27 @@ public abstract class AbstractHttpInputOperator<T> extends
SimpleSinglePortInput
* The URL of the web service resource for the POST request.
*/
@NotNull
- private URI resourceUrl;
+ private URI url;
private Map<String, String> headers = new HashMap<String, String>();
private transient Client wsClient;
private transient WebResource resource;
+ /**
+ * The url to read from.
+ * @param u The url to read from.
+ */
public void setUrl(URI u)
{
- resourceUrl = u;
+ url = u;
+ }
+
+ /**
+ * Sets the url to read from.
+ * @return The url to read from.
+ */
+ public URI getUrl()
+ {
+ return url;
}
public void setHeader(String key, String value)
@@ -77,8 +90,8 @@ public abstract class AbstractHttpInputOperator<T> extends
SimpleSinglePortInput
wsClient = Client.create();
wsClient.setFollowRedirects(true);
wsClient.setReadTimeout(readTimeoutMillis);
- resource = wsClient.resource(resourceUrl.toString()); // side step "not
absolute URL" after serialization
- LOG.info("URL: {}", resourceUrl);
+ resource = wsClient.resource(url.toString()); // side step "not absolute
URL" after serialization
+ LOG.info("URL: {}", url);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/HttpGetMapOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/HttpGetMapOperator.java
b/library/src/main/java/com/datatorrent/lib/io/HttpGetMapOperator.java
index 253e58c..8c54ec0 100644
--- a/library/src/main/java/com/datatorrent/lib/io/HttpGetMapOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/io/HttpGetMapOperator.java
@@ -29,7 +29,7 @@ import com.sun.jersey.api.client.WebResource;
* </p>
* @displayName HTTP GET Map
* @category Input
- * @tags http, input operator
+ * @tags http
*
* @param <K> Type of key in input map tuple
* @param <V> Type of value in input map tuple
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/HttpJsonChunksInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/HttpJsonChunksInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/HttpJsonChunksInputOperator.java
index 1750811..bc6dc5c 100644
---
a/library/src/main/java/com/datatorrent/lib/io/HttpJsonChunksInputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/io/HttpJsonChunksInputOperator.java
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
* </p>
* @displayName HTTP JSON Chunks Input
* @category Input
- * @tags http, input operator
+ * @tags http
*
* @since 0.9.4
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/HttpLinesInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/HttpLinesInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/HttpLinesInputOperator.java
index 3997d22..6258c07 100644
--- a/library/src/main/java/com/datatorrent/lib/io/HttpLinesInputOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/io/HttpLinesInputOperator.java
@@ -26,7 +26,7 @@ import java.io.InputStreamReader;
* <p></p>
* @displayName HTTP Lines Input
* @category Input
- * @tags http, input operator
+ * @tags http
*
* @since 0.9.4
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketInputOperator.java
index fffdcee..b7417dd 100644
---
a/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketInputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketInputOperator.java
@@ -32,7 +32,7 @@ import com.datatorrent.common.util.PubSubWebSocketClient;
* <p></p>
* @displayName Pub Sub Web Socket Input
* @category Input
- * @tags http, input operator
+ * @tags http, websocket
*
* @since 0.3.2
*/
@@ -47,11 +47,19 @@ public class PubSubWebSocketInputOperator<T> extends
WebSocketInputOperator<T>
this.codec = new PubSubMessageCodec<Object>(mapper);
}
+ /**
+ * The pub sub topic to subscribe to.
+ * @param topic The pub sub topic to subscribe to.
+ */
public void setTopic(String topic)
{
this.topic = topic;
}
+ /**
+ * Gets pub sub topic to subscribe to.
+ * @return The pub sub topic to subscribe to.
+ */
@NotNull
public String getTopic()
{
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketOutputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketOutputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketOutputOperator.java
index 47a4966..ef9a113 100644
---
a/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketOutputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/io/PubSubWebSocketOutputOperator.java
@@ -26,8 +26,8 @@ import com.datatorrent.common.util.PubSubWebSocketClient;
* This operator writes maps as JSON objects to the given URL.
* <p></p>
* @displayName Pub Sub Web Socket Output
- * @category Input
- * @tags http, input operator
+ * @category Output
+ * @tags http
*
* @param <T>
* @since 0.3.2
@@ -37,11 +37,19 @@ public class PubSubWebSocketOutputOperator<T> extends
WebSocketOutputOperator<T>
private String topic = null;
private transient PubSubMessageCodec<Object> codec = new
PubSubMessageCodec<Object>(mapper);
+ /**
+ * The pub sub topic to subscribe to.
+ * @param topic The pub sub topic to subscribe to.
+ */
public void setTopic(String topic)
{
this.topic = topic;
}
+ /**
+ * Gets the pub sub topic to subscribe to.
+ * @return The pub sub topic to subscribe to.
+ */
@NotNull
public String getTopic()
{
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/SimpleSinglePortInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/SimpleSinglePortInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/SimpleSinglePortInputOperator.java
index 4e6d465..07bcaf5 100644
---
a/library/src/main/java/com/datatorrent/lib/io/SimpleSinglePortInputOperator.java
+++
b/library/src/main/java/com/datatorrent/lib/io/SimpleSinglePortInputOperator.java
@@ -32,11 +32,10 @@ import com.datatorrent.common.util.BaseOperator;
* </p>
* @displayName Asynchronous Input Processing
* @category Input
- * @tags input operator
*
* @since 0.3.2
*/
-public class SimpleSinglePortInputOperator<T> extends BaseOperator implements
InputOperator, Operator.ActivationListener<OperatorContext>
+public abstract class SimpleSinglePortInputOperator<T> extends BaseOperator
implements InputOperator, Operator.ActivationListener<OperatorContext>
{
private transient Thread ioThread;
private transient boolean isActive = false;
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/WebSocketInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/WebSocketInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/WebSocketInputOperator.java
index cc3e874..dabcacb 100644
--- a/library/src/main/java/com/datatorrent/lib/io/WebSocketInputOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/io/WebSocketInputOperator.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
* <p></p>
* @displayName JSON Map Input
* @category Input
- * @tags http, input operator
+ * @tags http, websocket
*
* @since 0.3.2
*/
@@ -93,7 +93,7 @@ public class WebSocketInputOperator<T> extends
SimpleSinglePortInputOperator<T>
}
/**
- * Sets the IO Thread multiplier for AsyncWebSocket connection
+ * The number of threads to use for the websocket connection.
*
* @param ioThreadMultiplier
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/WebSocketOutputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/WebSocketOutputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/WebSocketOutputOperator.java
index 1a23ebb..a92f8b3 100644
--- a/library/src/main/java/com/datatorrent/lib/io/WebSocketOutputOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/io/WebSocketOutputOperator.java
@@ -40,8 +40,8 @@ import com.datatorrent.api.DefaultInputPort;
* Reads via WebSocket from given URL as input stream. Incoming data is
interpreted as JSONObject and converted to {@link java.util.Map}.
* <p></p>
* @displayName JSON Map Output
- * @category Input
- * @tags http, input operator
+ * @category Output
+ * @tags http, websocket
*
* @param <T> tuple type
* @since 0.3.2
@@ -111,7 +111,7 @@ public class WebSocketOutputOperator<T> extends BaseOperator
}
/**
- * Sets the IO Thread multiplier for AsyncWebSocket connection
+ * The number of threads to use for the websocket connection.
*
* @param ioThreadMultiplier
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/fs/FileSplitter.java
----------------------------------------------------------------------
diff --git a/library/src/main/java/com/datatorrent/lib/io/fs/FileSplitter.java
b/library/src/main/java/com/datatorrent/lib/io/fs/FileSplitter.java
index 13b4bdf..58554c3 100644
--- a/library/src/main/java/com/datatorrent/lib/io/fs/FileSplitter.java
+++ b/library/src/main/java/com/datatorrent/lib/io/fs/FileSplitter.java
@@ -63,7 +63,7 @@ import
com.datatorrent.lib.io.block.BlockMetadata.FileBlockMetadata;
*
* @displayName File Splitter
* @category Input
- * @tags file, input operator
+ * @tags file
* @since 2.0.0
*/
@OperatorAnnotation(checkpointableWithinAppWindow = false)
@@ -835,6 +835,8 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
+ * Gets the regular expression for file names to split.
+ *
* @return regular expression
*/
public String getFilePatternRegularExp()
@@ -843,7 +845,7 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
- * Sets the regular expression for files.
+ * Only files with names matching the given java regular expression are
split.
*
* @param filePatternRegexp regular expression
*/
@@ -853,7 +855,8 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
- * Sets the files to be scanned.
+ * A comma separated list of directories to scan. If the path is not fully
qualified the default
+ * file system is used. A fully qualified path can be provided to scan
directories in other filesystems.
*
* @param files files
*/
@@ -863,6 +866,8 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
+ * Gets the files to be scanned.
+ *
* @return files to be scanned.
*/
public String getFiles()
@@ -871,7 +876,7 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
- * Sets whether scan will be recursive.
+ * True if recursive; false otherwise.
*
* @param recursive true if recursive; false otherwise.
*/
@@ -881,6 +886,8 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
+ * Sets whether scan will be recursive.
+ *
* @return true if recursive; false otherwise.
*/
public boolean isRecursive()
@@ -899,7 +906,7 @@ public class FileSplitter implements InputOperator,
Operator.CheckpointListener
}
/**
- * Returns the value of trigger.
+ * The trigger which will initiate scan.
*
* @return trigger
*/
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/io/fs/TailFsInputOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/io/fs/TailFsInputOperator.java
b/library/src/main/java/com/datatorrent/lib/io/fs/TailFsInputOperator.java
index 721411b..4a0defa 100644
--- a/library/src/main/java/com/datatorrent/lib/io/fs/TailFsInputOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/io/fs/TailFsInputOperator.java
@@ -45,7 +45,7 @@ import com.datatorrent.api.Operator.ActivationListener;
* </p>
* @displayName Tail Input
* @category Input
- * @tags local fs, file, input operator
+ * @tags local fs, file
* @since 0.9.4
*/
public class TailFsInputOperator implements InputOperator,
ActivationListener<OperatorContext>
@@ -123,6 +123,7 @@ public class TailFsInputOperator implements InputOperator,
ActivationListener<Op
}
/**
+ * Gets whether to tail from the end of the file.
* @return the end
*/
public boolean isEnd()
@@ -131,8 +132,8 @@ public class TailFsInputOperator implements InputOperator,
ActivationListener<Op
}
/**
- * @param end
- * the end to set
+ * Whether to tail from the end or start of file.
+ * @param end The end to set.
*/
public void setEnd(boolean end)
{
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/dd15161d/library/src/main/java/com/datatorrent/lib/script/JavaScriptOperator.java
----------------------------------------------------------------------
diff --git
a/library/src/main/java/com/datatorrent/lib/script/JavaScriptOperator.java
b/library/src/main/java/com/datatorrent/lib/script/JavaScriptOperator.java
index 8dca272..486ba60 100644
--- a/library/src/main/java/com/datatorrent/lib/script/JavaScriptOperator.java
+++ b/library/src/main/java/com/datatorrent/lib/script/JavaScriptOperator.java
@@ -69,7 +69,7 @@ import org.slf4j.LoggerFactory;
*
* @displayName Java Script
* @category Scripting
- * @tags script operator, map, string
+ * @tags script, map, string
* @since 0.3.2
*/
public class JavaScriptOperator extends ScriptOperator