You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/09/20 12:39:28 UTC

git commit: Code beautification - made in line with rest of code (final variables, use of curly brackets, specified generic arguments).

Repository: incubator-metamodel
Updated Branches:
  refs/heads/master 55a752feb -> 5f95bf854


Code beautification - made in line with rest of code (final variables,
use of curly brackets, specified generic arguments).

Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/5f95bf85
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/5f95bf85
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/5f95bf85

Branch: refs/heads/master
Commit: 5f95bf854fef2408a955e9744bae5f828e3c45a7
Parents: 55a752f
Author: Kasper Sørensen <i....@gmail.com>
Authored: Sat Sep 20 12:38:14 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Sat Sep 20 12:38:14 2014 +0200

----------------------------------------------------------------------
 .../elasticsearch/ElasticSearchDataContext.java | 255 +++++++++----------
 .../elasticsearch/ElasticSearchDataSet.java     |  14 +-
 .../elasticsearch/ElasticSearchMetaData.java    |   5 +-
 .../ElasticSearchMetaDataParser.java            |  48 ++--
 4 files changed, 159 insertions(+), 163 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/5f95bf85/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataContext.java
----------------------------------------------------------------------
diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataContext.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataContext.java
index 06ea651..2cc11b8 100644
--- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataContext.java
+++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataContext.java
@@ -45,21 +45,22 @@ import java.util.*;
 /**
  * DataContext implementation for ElasticSearch analytics engine.
  *
- * Since ElasticSearch has indexes and types a virtual schema will be used in this
- * DataContext where the tables will be the types. We will also maintain a hashmap that
- * will contain the index/type relationship. This implementation supports either automatic
- * discovery of a schema or manual specification of a schema, through the {@link SimpleTableDef} class.
+ * Since ElasticSearch has indexes and types a virtual schema will be used in
+ * this DataContext where the tables will be the types. We will also maintain a
+ * hashmap that will contain the index/type relationship. This implementation
+ * supports either automatic discovery of a schema or manual specification of a
+ * schema, through the {@link SimpleTableDef} class.
  *
  * @author Alberto Rodriguez
  */
-public class ElasticSearchDataContext extends QueryPostprocessDataContext
-        implements DataContext {
+public class ElasticSearchDataContext extends QueryPostprocessDataContext implements DataContext {
+    
     private static final Logger logger = LoggerFactory.getLogger(ElasticSearchDataContext.class);
     private static final String ES_CLUSTER_NAME = "cluster.name";
 
     private final Client elasticSearchClient;
     private final SimpleTableDef[] tableDefs;
-    private HashMap<String,String> typeAndIndexes = new HashMap();
+    private HashMap<String, String> typeAndIndexes = new HashMap<String, String>();
 
     /**
      * Constructs a {@link ElasticSearchDataContext}. This constructor accepts a
@@ -78,8 +79,9 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
     }
 
     /**
-     * Constructs a {@link ElasticSearchDataContext} and automatically detects the
-     * schema structure/view on all indexes (see {@link #detectSchema(Client)}).
+     * Constructs a {@link ElasticSearchDataContext} and automatically detects
+     * the schema structure/view on all indexes (see
+     * {@link #detectSchema(Client)}).
      *
      * @param client
      *            the ElasticSearch client
@@ -88,11 +90,10 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
         this(client, detectSchema(client));
     }
 
-
     /**
-     * Performs an analysis of the available indexes in an ElasticSearch cluster {@link Client}
-     * instance and detects the elasticsearch types structure based on the metadata provided by
-     * the ElasticSearch java client.
+     * Performs an analysis of the available indexes in an ElasticSearch cluster
+     * {@link Client} instance and detects the elasticsearch types structure
+     * based on the metadata provided by the ElasticSearch java client.
      *
      * @see #detectTable(ClusterState, String, String)
      *
@@ -102,24 +103,25 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
      *         user.
      */
     public static SimpleTableDef[] detectSchema(Client client) {
-        List<String> indexNames = new ArrayList();
+        List<String> indexNames = new ArrayList<String>();
         ClusterStateResponse clusterStateResponse = client.admin().cluster().prepareState().execute().actionGet();
-        ImmutableOpenMap<String,IndexMetaData> indexes = clusterStateResponse.getState().getMetaData().getIndices();
+        ImmutableOpenMap<String, IndexMetaData> indexes = clusterStateResponse.getState().getMetaData().getIndices();
         for (ObjectCursor<String> typeCursor : indexes.keys())
             indexNames.add(typeCursor.value);
-        List<SimpleTableDef> result = new ArrayList();
+        List<SimpleTableDef> result = new ArrayList<SimpleTableDef>();
         for (String indexName : indexNames) {
-            ClusterState cs = client.admin().cluster().prepareState().setIndices(indexName).execute().actionGet().getState();
+            ClusterState cs = client.admin().cluster().prepareState().setIndices(indexName).execute().actionGet()
+                    .getState();
             IndexMetaData imd = cs.getMetaData().index(indexName);
             ImmutableOpenMap<String, MappingMetaData> mappings = imd.getMappings();
-            ObjectLookupContainer indexTypes = mappings.keys();
-            for (Object indexType: indexTypes) {
-                String typeName = ((ObjectCursor) indexType).value.toString();
+            final ObjectLookupContainer<String> indexTypes = mappings.keys();
+            for (Object indexType : indexTypes) {
+                String typeName = ((ObjectCursor<?>) indexType).value.toString();
                 try {
                     SimpleTableDef table = detectTable(cs, indexName, typeName);
                     result.add(table);
-                } catch(Exception e) {
-                    logger.error("Unexpected error during detectSchema for table: "+typeName, e);
+                } catch (Exception e) {
+                    logger.error("Unexpected error during detectSchema for table: " + typeName, e);
                 }
             }
 
@@ -129,9 +131,9 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
     }
 
     /**
-     * Performs an analysis of an available index type in an ElasticSearch {@link Client}
-     * client and tries to detect the index structure based on the metadata provided
-     * by the java client.
+     * Performs an analysis of an available index type in an ElasticSearch
+     * {@link Client} client and tries to detect the index structure based on
+     * the metadata provided by the java client.
      *
      * @param cs
      *            the ElasticSearch cluster
@@ -145,34 +147,33 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
         IndexMetaData imd = cs.getMetaData().index(indexName);
         MappingMetaData mappingMetaData = imd.mapping(typeName);
         Map<String, Object> mp = mappingMetaData.getSourceAsMap();
-        Iterator it = mp.entrySet().iterator();
-        Map.Entry pair = (Map.Entry)it.next();
+        Iterator<Map.Entry<String, Object>> it = mp.entrySet().iterator();
+        Map.Entry<String, Object> pair = it.next();
         ElasticSearchMetaData metaData = ElasticSearchMetaDataParser.parse(pair.getValue());
         return new SimpleTableDef(typeName, metaData.getColumnNames(), metaData.getColumnTypes());
     }
 
-
     @Override
     protected Schema getMainSchema() throws MetaModelException {
-       MutableSchema theSchema = new MutableSchema(getMainSchemaName());
-       for (SimpleTableDef tableDef: tableDefs) {
-          MutableTable table = tableDef.toTable().setSchema(theSchema);
-          theSchema.addTable(table);
-          }
-       return theSchema;
+        MutableSchema theSchema = new MutableSchema(getMainSchemaName());
+        for (SimpleTableDef tableDef : tableDefs) {
+            MutableTable table = tableDef.toTable().setSchema(theSchema);
+            theSchema.addTable(table);
+        }
+        return theSchema;
     }
 
     @Override
     protected String getMainSchemaName() throws MetaModelException {
-        return  elasticSearchClient.settings().get(ES_CLUSTER_NAME);
+        return elasticSearchClient.settings().get(ES_CLUSTER_NAME);
     }
 
     @Override
     protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
-        SearchRequestBuilder requestBuilder = elasticSearchClient.
-                prepareSearch(getIndexNameForIndexType(table.getName())).
-                setTypes(table.getName());
-        if (limitMaxRowsIsSet(maxRows)) requestBuilder.setSize(maxRows);
+        SearchRequestBuilder requestBuilder = elasticSearchClient.prepareSearch(
+                getIndexNameForIndexType(table.getName())).setTypes(table.getName());
+        if (limitMaxRowsIsSet(maxRows))
+            requestBuilder.setSize(maxRows);
         SearchResponse response = requestBuilder.execute().actionGet();
         return new ElasticSearchDataSet(response, columns, false);
     }
@@ -180,9 +181,7 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
     @Override
     protected Number executeCountQuery(Table table, List<FilterItem> whereItems, boolean functionApproximationAllowed) {
         CountResponse response = elasticSearchClient.prepareCount(getIndexNameForIndexType(table.getName()))
-                .setQuery(QueryBuilders.termQuery("_type", table.getName()))
-                .execute()
-                .actionGet();
+                .setQuery(QueryBuilders.termQuery("_type", table.getName())).execute().actionGet();
         return response.getCount();
     }
 
@@ -192,7 +191,7 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
 
     private String getIndexNameForIndexType(String indexType) {
         String indexName = typeAndIndexes.get(indexType);
-        if (indexName==null)
+        if (indexName == null)
             indexName = fetchIndexNameFromES(indexType);
         return indexName;
     }
@@ -200,15 +199,16 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
     private String fetchIndexNameFromES(String indexType) {
         String theIndexName = "";
         boolean indexNameFound = false;
-        List<String> indexNames = getIndexNamesFromES();
+        final List<String> indexNames = getIndexNamesFromES();
         for (String indexName : indexNames) {
             if (!indexNameFound) {
-                ClusterState cs = elasticSearchClient.admin().cluster().prepareState().setIndices(indexName).execute().actionGet().getState();
-                IndexMetaData imd = cs.getMetaData().index(indexName);
-                ImmutableOpenMap<String, MappingMetaData> mappings = imd.getMappings();
-                ObjectLookupContainer indexTypes = mappings.keys();
-                for (Object type: indexTypes) {
-                    String typeName = ((ObjectCursor) type).value.toString();
+                final ClusterState cs = elasticSearchClient.admin().cluster().prepareState().setIndices(indexName)
+                        .execute().actionGet().getState();
+                final IndexMetaData imd = cs.getMetaData().index(indexName);
+                final ImmutableOpenMap<String, MappingMetaData> mappings = imd.getMappings();
+                final ObjectLookupContainer<String> indexTypes = mappings.keys();
+                for (Object type : indexTypes) {
+                    final String typeName = ((ObjectCursor<?>) type).value.toString();
                     if (typeName.equals(indexType)) {
                         theIndexName = indexName;
                         typeAndIndexes.put(typeName, indexName);
@@ -221,86 +221,85 @@ public class ElasticSearchDataContext extends QueryPostprocessDataContext
     }
 
     private List<String> getIndexNamesFromES() {
-        List<String> indexNames = new ArrayList();
-        ClusterStateResponse clusterStateResponse = elasticSearchClient.admin().cluster().prepareState().execute().actionGet();
-        ImmutableOpenMap<String,IndexMetaData> indexes = clusterStateResponse.getState().getMetaData().getIndices();
-        for (ObjectCursor<String> typeCursor : indexes.keys())
+        final List<String> indexNames = new ArrayList<String>();
+        final ClusterStateResponse clusterStateResponse = elasticSearchClient.admin().cluster().prepareState().execute()
+                .actionGet();
+        final ImmutableOpenMap<String, IndexMetaData> indexes = clusterStateResponse.getState().getMetaData().getIndices();
+        for (ObjectCursor<String> typeCursor : indexes.keys()) {
             indexNames.add(typeCursor.value);
-        return indexNames;
-    }
-
-
-
-/*  TODO: Implement corner cases of WHERE, GROUPBY... items that we can support natively.
-    @Override
-    public DataSet executeQuery(Query query) {
-        // Check for queries containing only simple selects and where clauses,
-        // or if it is a COUNT(*) query.
-        // if from clause only contains a main schema table
-        List<FromItem> fromItems = query.getFromClause().getItems();
-        if (fromItems.size() == 1 && fromItems.get(0).getTable() != null && fromItems.get(0).getTable().getSchema() == schema) {
-            final Table table = fromItems.get(0).getTable();
-
-            // if GROUP BY, HAVING and ORDER BY clauses are not specified
-            if (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty() && query.getOrderByClause().isEmpty()) {
-
-                final List<FilterItem> whereItems = query.getWhereClause().getItems();
-
-                // if all of the select items are "pure" column selection
-                boolean allSelectItemsAreColumns = true;
-                List<SelectItem> selectItems = query.getSelectClause().getItems();
-
-                // if it is a
-                // "SELECT [columns] FROM [table] WHERE [conditions]"
-                // query.
-                for (SelectItem selectItem : selectItems) {
-                    if (selectItem.getFunction() != null || selectItem.getColumn() == null) {
-                        allSelectItemsAreColumns = false;
-                        break;
-                    }
-                }
-
-                if (allSelectItemsAreColumns) {
-                    logger.debug("Query can be expressed in full ElasticSearch, no post processing needed.");
-
-                    // prepare for a non-post-processed query
-                    Column[] columns = new Column[selectItems.size()];
-                    for (int i = 0; i < columns.length; i++) {
-                        columns[i] = selectItems.get(i).getColumn();
-                    }
-
-                    int firstRow = (query.getFirstRow() == null ? 1 : query.getFirstRow());
-                    int maxRows = (query.getMaxRows() == null ? -1 : query.getMaxRows());
-
-                    final DataSet dataSet = materializeMainSchemaTableInternal(table, columns, whereItems, firstRow, maxRows,
-                            false);
-                    return dataSet;
-                }
-            }
         }
-        logger.debug("Query will be simplified for ElasticSearch and post processed.");
-        return super.executeQuery(query);
+        return indexNames;
     }
 
-    private DataSet materializeMainSchemaTableInternal(Table table, Column[] columns, List<FilterItem> whereItems, int firstRow,
-                                                       int maxRows, boolean queryPostProcessed) {
-        //final SearchRequestBuilder collection = elasticSearchClient.prepareSearch(typeAndIndexes.get(table.getName())).setTypes(table.getName());
-        ClusterStateResponse clusterStateResponse = elasticSearchClient.admin().cluster().prepareState().execute().actionGet();
-        ImmutableOpenMap<String,IndexMetaData> indexes = clusterStateResponse.getState().getMetaData().getIndices();
-        //final SearchRequestBuilder collection = elasticSearchClient.prepareSearch("twitter").setTypes("tweet1");
-        SearchRequestBuilder requestBuilder = elasticSearchClient.prepareSearch();
-
-        if (whereItems != null && !whereItems.isEmpty()) {
-            for (FilterItem item : whereItems) {
-                String operandWithIndexName = item.getSelectItem().toString();
-                int operandNameIndexStart = operandWithIndexName.indexOf(".")+1;
-                String operandWithoutIndexName = operandWithIndexName.substring(operandNameIndexStart);
-                requestBuilder.setQuery(QueryBuilders.termQuery(operandWithoutIndexName, item.getOperand()));
-            }
-        }
-
-        SearchResponse response = requestBuilder.execute().actionGet();
-
-        return new ElasticSearchDataSet(response, columns, queryPostProcessed);
-    }*/
+    /*
+     * TODO: Implement corner cases of WHERE, GROUPBY... items that we can
+     * support natively.
+     * 
+     * @Override public DataSet executeQuery(Query query) { // Check for queries
+     * containing only simple selects and where clauses, // or if it is a
+     * COUNT(*) query. // if from clause only contains a main schema table
+     * List<FromItem> fromItems = query.getFromClause().getItems(); if
+     * (fromItems.size() == 1 && fromItems.get(0).getTable() != null &&
+     * fromItems.get(0).getTable().getSchema() == schema) { final Table table =
+     * fromItems.get(0).getTable();
+     * 
+     * // if GROUP BY, HAVING and ORDER BY clauses are not specified if
+     * (query.getGroupByClause().isEmpty() && query.getHavingClause().isEmpty()
+     * && query.getOrderByClause().isEmpty()) {
+     * 
+     * final List<FilterItem> whereItems = query.getWhereClause().getItems();
+     * 
+     * // if all of the select items are "pure" column selection boolean
+     * allSelectItemsAreColumns = true; List<SelectItem> selectItems =
+     * query.getSelectClause().getItems();
+     * 
+     * // if it is a // "SELECT [columns] FROM [table] WHERE [conditions]" //
+     * query. for (SelectItem selectItem : selectItems) { if
+     * (selectItem.getFunction() != null || selectItem.getColumn() == null) {
+     * allSelectItemsAreColumns = false; break; } }
+     * 
+     * if (allSelectItemsAreColumns) { logger.debug(
+     * "Query can be expressed in full ElasticSearch, no post processing needed."
+     * );
+     * 
+     * // prepare for a non-post-processed query Column[] columns = new
+     * Column[selectItems.size()]; for (int i = 0; i < columns.length; i++) {
+     * columns[i] = selectItems.get(i).getColumn(); }
+     * 
+     * int firstRow = (query.getFirstRow() == null ? 1 : query.getFirstRow());
+     * int maxRows = (query.getMaxRows() == null ? -1 : query.getMaxRows());
+     * 
+     * final DataSet dataSet = materializeMainSchemaTableInternal(table,
+     * columns, whereItems, firstRow, maxRows, false); return dataSet; } } }
+     * logger
+     * .debug("Query will be simplified for ElasticSearch and post processed.");
+     * return super.executeQuery(query); }
+     * 
+     * private DataSet materializeMainSchemaTableInternal(Table table, Column[]
+     * columns, List<FilterItem> whereItems, int firstRow, int maxRows, boolean
+     * queryPostProcessed) { //final SearchRequestBuilder collection =
+     * elasticSearchClient
+     * .prepareSearch(typeAndIndexes.get(table.getName())).setTypes
+     * (table.getName()); ClusterStateResponse clusterStateResponse =
+     * elasticSearchClient
+     * .admin().cluster().prepareState().execute().actionGet();
+     * ImmutableOpenMap<String,IndexMetaData> indexes =
+     * clusterStateResponse.getState().getMetaData().getIndices(); //final
+     * SearchRequestBuilder collection =
+     * elasticSearchClient.prepareSearch("twitter").setTypes("tweet1");
+     * SearchRequestBuilder requestBuilder =
+     * elasticSearchClient.prepareSearch();
+     * 
+     * if (whereItems != null && !whereItems.isEmpty()) { for (FilterItem item :
+     * whereItems) { String operandWithIndexName =
+     * item.getSelectItem().toString(); int operandNameIndexStart =
+     * operandWithIndexName.indexOf(".")+1; String operandWithoutIndexName =
+     * operandWithIndexName.substring(operandNameIndexStart);
+     * requestBuilder.setQuery(QueryBuilders.termQuery(operandWithoutIndexName,
+     * item.getOperand())); } }
+     * 
+     * SearchResponse response = requestBuilder.execute().actionGet();
+     * 
+     * return new ElasticSearchDataSet(response, columns, queryPostProcessed); }
+     */
 }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/5f95bf85/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataSet.java
----------------------------------------------------------------------
diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataSet.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataSet.java
index d68b4f0..5187b3c 100644
--- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataSet.java
+++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDataSet.java
@@ -32,8 +32,7 @@ import java.util.Map;
 
 final class ElasticSearchDataSet extends AbstractDataSet {
 
-    private static final Logger logger = LoggerFactory
-            .getLogger(ElasticSearchDataSet.class);
+    private static final Logger logger = LoggerFactory.getLogger(ElasticSearchDataSet.class);
 
     private int readCount = 0;
 
@@ -43,8 +42,7 @@ final class ElasticSearchDataSet extends AbstractDataSet {
     private boolean _closed;
     private volatile SearchHit _dbObject;
 
-    public ElasticSearchDataSet(SearchResponse cursor, Column[] columns,
-                          boolean queryPostProcessed) {
+    public ElasticSearchDataSet(SearchResponse cursor, Column[] columns, boolean queryPostProcessed) {
         super(columns);
         _cursor = cursor.getHits().hits();
         _queryPostProcessed = queryPostProcessed;
@@ -58,7 +56,7 @@ final class ElasticSearchDataSet extends AbstractDataSet {
     @Override
     public void close() {
         super.close();
-        //_cursor.close();
+        // _cursor.close();
         _closed = true;
     }
 
@@ -66,16 +64,14 @@ final class ElasticSearchDataSet extends AbstractDataSet {
     protected void finalize() throws Throwable {
         super.finalize();
         if (!_closed) {
-            logger.warn(
-                    "finalize() invoked, but DataSet is not closed. Invoking close() on {}",
-                    this);
+            logger.warn("finalize() invoked, but DataSet is not closed. Invoking close() on {}", this);
             close();
         }
     }
 
     @Override
     public boolean next() {
-        if (readCount<_cursor.length) {
+        if (readCount < _cursor.length) {
             _dbObject = _cursor[readCount];
             readCount++;
             return true;

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/5f95bf85/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaData.java
----------------------------------------------------------------------
diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaData.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaData.java
index 328430d..3181071 100644
--- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaData.java
+++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaData.java
@@ -29,8 +29,9 @@ import org.apache.metamodel.schema.ColumnType;
  * @author Alberto Rodriguez
  */
 public class ElasticSearchMetaData {
-    private String[] columnNames;
-    private ColumnType[] columnTypes;
+    
+    private final String[] columnNames;
+    private final ColumnType[] columnTypes;
 
     /**
      * Constructs a {@link ElasticSearchMetaData}.

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/5f95bf85/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaDataParser.java
----------------------------------------------------------------------
diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaDataParser.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaDataParser.java
index 8d9589d..dfbca63 100644
--- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaDataParser.java
+++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchMetaDataParser.java
@@ -18,7 +18,6 @@
  */
 package org.apache.metamodel.elasticsearch;
 
-
 import org.apache.metamodel.schema.ColumnType;
 
 /**
@@ -30,23 +29,22 @@ import org.apache.metamodel.schema.ColumnType;
  */
 public class ElasticSearchMetaDataParser {
     /**
-     * Parses the ElasticSearch meta data info into an ElasticSearchMetaData object. This
-     * method makes much easier to create the ElasticSearch schema.
+     * Parses the ElasticSearch meta data info into an ElasticSearchMetaData
+     * object. This method makes much easier to create the ElasticSearch schema.
      *
      * @param metaDataInfo
-     *    ElasticSearch metadata info in a json-like format
-     * @return
-     *    An ElasticSearchMetaData object
+     *            ElasticSearch metadata info in a json-like format
+     * @return An ElasticSearchMetaData object
      */
     public static ElasticSearchMetaData parse(Object metaDataInfo) {
-        String plainMetaDataInfo = removeFirstAndLastCharacter(metaDataInfo.toString());
-        String metaDataWithoutDateFormats = removeDateFormats(plainMetaDataInfo);
-        String[] metaDataFields = metaDataWithoutDateFormats.split(",");
-        String[] fieldNames = new String[metaDataFields.length];
-        ColumnType[] columnTypes = new ColumnType[metaDataFields.length];
+        final String plainMetaDataInfo = removeFirstAndLastCharacter(metaDataInfo.toString());
+        final String metaDataWithoutDateFormats = removeDateFormats(plainMetaDataInfo);
+        final String[] metaDataFields = metaDataWithoutDateFormats.split(",");
+        final String[] fieldNames = new String[metaDataFields.length];
+        final ColumnType[] columnTypes = new ColumnType[metaDataFields.length];
         int i = 0;
-        for (String metaDataField: metaDataFields) {
-            //message={type=long}
+        for (String metaDataField : metaDataFields) {
+            // message={type=long}
             fieldNames[i] = getNameFromMetaDataField(metaDataField);
             columnTypes[i] = getColumnTypeFromMetaDataField(metaDataField);
             i++;
@@ -56,7 +54,7 @@ public class ElasticSearchMetaDataParser {
     }
 
     private static String removeFirstAndLastCharacter(String metaDataInfo) {
-        return metaDataInfo.substring(1, metaDataInfo.length()-1);
+        return metaDataInfo.substring(1, metaDataInfo.length() - 1);
     }
 
     private static String removeDateFormats(String metaDataInfo) {
@@ -68,26 +66,28 @@ public class ElasticSearchMetaDataParser {
     }
 
     private static ColumnType getColumnTypeFromMetaDataField(String metaDataField) {
-        ColumnType columnType = null;
-        String metaDataFieldType = getMetaDataFieldTypeFromMetaDataField(metaDataField);
-        if (metaDataFieldType.equals("long"))
+        final ColumnType columnType;
+        final String metaDataFieldType = getMetaDataFieldTypeFromMetaDataField(metaDataField);
+        if (metaDataFieldType.equals("long")) {
             columnType = ColumnType.BIGINT;
-        else if (metaDataFieldType.equals("date"))
+        } else if (metaDataFieldType.equals("date")) {
             columnType = ColumnType.DATE;
-        else if (metaDataFieldType.equals("string"))
+        } else if (metaDataFieldType.equals("string")) {
             columnType = ColumnType.STRING;
-        else if (metaDataFieldType.equals("float"))
+        } else if (metaDataFieldType.equals("float")) {
             columnType = ColumnType.FLOAT;
-        else if (metaDataFieldType.equals("boolean"))
+        } else if (metaDataFieldType.equals("boolean")) {
             columnType = ColumnType.FLOAT;
-        else
+        } else {
             columnType = ColumnType.STRING;
+        }
         return columnType;
     }
 
     private static String getMetaDataFieldTypeFromMetaDataField(String metaDataField) {
-        String metaDataFieldWithoutName = metaDataField.substring(metaDataField.indexOf("=")+1);
-        String metaDataFieldType = metaDataFieldWithoutName.substring(metaDataFieldWithoutName.indexOf("=")+1, metaDataFieldWithoutName.length()-1);
+        final String metaDataFieldWithoutName = metaDataField.substring(metaDataField.indexOf("=") + 1);
+        final String metaDataFieldType = metaDataFieldWithoutName.substring(metaDataFieldWithoutName.indexOf("=") + 1,
+                metaDataFieldWithoutName.length() - 1);
         return metaDataFieldType;
     }