You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ja...@apache.org on 2018/02/07 07:07:13 UTC

[06/10] eagle git commit: [EAGLE-1081] Checkstyle fixes for eagle-entity-base module

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/RowKeyLogReader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/RowKeyLogReader.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/RowKeyLogReader.java
index 1c16dc8..1f29121 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/RowKeyLogReader.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/RowKeyLogReader.java
@@ -31,12 +31,12 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.eagle.log.entity.meta.EntityDefinition;
 
 public class RowKeyLogReader extends IndexLogReader {
-	private final EntityDefinition ed;
-	private final List<byte[]> rowkeys;
+    private final EntityDefinition ed;
+    private final List<byte[]> rowkeys;
     private final byte[][] qualifiers;
     private HTableInterface tbl;
-	private boolean isOpen = false;
-	private Result[] entityResult;
+    private boolean isOpen = false;
+    private Result[] entityResult;
     private int getIndex = -1;
 
     public RowKeyLogReader(EntityDefinition ed, byte[] rowkey) {
@@ -46,38 +46,39 @@ public class RowKeyLogReader extends IndexLogReader {
         this.qualifiers = null;
     }
 
-	public RowKeyLogReader(EntityDefinition ed, byte[] rowkey,byte[][] qualifiers) {
-		this.ed = ed;
-		this.rowkeys = new ArrayList<>();
+    public RowKeyLogReader(EntityDefinition ed, byte[] rowkey, byte[][] qualifiers) {
+        this.ed = ed;
+        this.rowkeys = new ArrayList<>();
         this.rowkeys.add(rowkey);
         this.qualifiers = qualifiers;
-	}
+    }
 
-	public RowKeyLogReader(EntityDefinition ed, List<byte[]> rowkeys,byte[][] qualifiers) {
-		this.ed = ed;
-		this.rowkeys = rowkeys;
+    public RowKeyLogReader(EntityDefinition ed, List<byte[]> rowkeys, byte[][] qualifiers) {
+        this.ed = ed;
+        this.rowkeys = rowkeys;
         this.qualifiers = qualifiers;
-	}
+    }
 
-	@Override
-	public void open() throws IOException {
-		if (isOpen)
-			return; // silently return
-		try {
-			tbl = EagleConfigFactory.load().getHTable(ed.getTable());
-		} catch (RuntimeException ex) {
-			throw new IOException(ex);
-		}
-		final byte[] family = ed.getColumnFamily().getBytes();
+    @Override
+    public void open() throws IOException {
+        if (isOpen) {
+            return; // silently return
+        }
+        try {
+            tbl = EagleConfigFactory.load().getHTable(ed.getTable());
+        } catch (RuntimeException ex) {
+            throw new IOException(ex);
+        }
+        final byte[] family = ed.getColumnFamily().getBytes();
         List<Get> gets = new ArrayList<>(this.rowkeys.size());
 
-        for(byte[] rowkey:rowkeys) {
+        for (byte[] rowkey : rowkeys) {
             Get get = new Get(rowkey);
             get.addFamily(family);
 
-            if(qualifiers != null) {
-                for(byte[] qualifier: qualifiers){
-                    get.addColumn(family,qualifier);
+            if (qualifiers != null) {
+                for (byte[] qualifier : qualifiers) {
+                    get.addColumn(family, qualifier);
                 }
             }
 
@@ -85,23 +86,23 @@ public class RowKeyLogReader extends IndexLogReader {
         }
 
         entityResult = tbl.get(gets);
-		isOpen = true;
-	}
+        isOpen = true;
+    }
 
-	@Override
-	public void close() throws IOException {
-		if(tbl != null){
-			new HTableFactory().releaseHTableInterface(tbl);
-		}
-	}
+    @Override
+    public void close() throws IOException {
+        if (tbl != null) {
+            new HTableFactory().releaseHTableInterface(tbl);
+        }
+    }
 
-	@Override
-	public InternalLog read() throws IOException {
-        if(entityResult == null || entityResult.length == 0 || this.getIndex >= entityResult.length - 1){
+    @Override
+    public InternalLog read() throws IOException {
+        if (entityResult == null || entityResult.length == 0 || this.getIndex >= entityResult.length - 1) {
             return null;
         }
-        getIndex ++;
-		InternalLog t = HBaseInternalLogHelper.parse(ed, entityResult[getIndex], this.qualifiers);
-		return t;
-	}
-}
\ No newline at end of file
+        getIndex++;
+        InternalLog t = HBaseInternalLogHelper.parse(ed, entityResult[getIndex], this.qualifiers);
+        return t;
+    }
+}

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexLogReader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexLogReader.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexLogReader.java
index 8ff3448..855beaf 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexLogReader.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexLogReader.java
@@ -33,32 +33,34 @@ import org.apache.hadoop.hbase.filter.Filter;
 
 public class UniqueIndexLogReader extends IndexLogReader {
 
-	private final IndexDefinition indexDef;
-	private final List<byte[]> indexRowkeys; 
-	private final byte[][] qualifiers;
-	private final Filter filter;
-	private HTableInterface tbl;
-	private boolean isOpen = false;
-	private Result[] entityResults;
-	private int index = -1;
+    private final IndexDefinition indexDef;
+    private final List<byte[]> indexRowkeys;
+    private final byte[][] qualifiers;
+    private final Filter filter;
+    private HTableInterface tbl;
+    private boolean isOpen = false;
+    private Result[] entityResults;
+    private int index = -1;
 
-	public UniqueIndexLogReader(IndexDefinition indexDef, List<byte[]> indexRowkeys, byte[][] qualifiers, Filter filter) {
-		this.indexDef = indexDef;
-		this.indexRowkeys = indexRowkeys;
-		this.qualifiers = qualifiers;
-		this.filter = filter;
-	}
+    public UniqueIndexLogReader(IndexDefinition indexDef, List<byte[]> indexRowkeys, byte[][] qualifiers,
+                                Filter filter) {
+        this.indexDef = indexDef;
+        this.indexRowkeys = indexRowkeys;
+        this.qualifiers = qualifiers;
+        this.filter = filter;
+    }
 
-	@Override
-	public void open() throws IOException {
-		if (isOpen)
-			return; // silently return
-		try {
-			tbl = EagleConfigFactory.load().getHTable(indexDef.getEntityDefinition().getTable());
-		} catch (RuntimeException ex) {
-			throw new IOException(ex);
-		}
-		final byte[] family = indexDef.getEntityDefinition().getColumnFamily().getBytes();
+    @Override
+    public void open() throws IOException {
+        if (isOpen) {
+            return; // silently return
+        }
+        try {
+            tbl = EagleConfigFactory.load().getHTable(indexDef.getEntityDefinition().getTable());
+        } catch (RuntimeException ex) {
+            throw new IOException(ex);
+        }
+        final byte[] family = indexDef.getEntityDefinition().getColumnFamily().getBytes();
         final List<Get> indexGets = new ArrayList<>();
         for (byte[] rowkey : indexRowkeys) {
             Get get = new Get(rowkey);
@@ -69,56 +71,56 @@ public class UniqueIndexLogReader extends IndexLogReader {
         final Result[] indexResults = tbl.get(indexGets);
         indexGets.clear();
         for (Result indexResult : indexResults) {
-        	final NavigableMap<byte[], byte[]> map = indexResult.getFamilyMap(family);
-        	if (map == null) {
-        		continue;
-        	}
-        	for (byte[] entityRowkey : map.keySet()) {
+            final NavigableMap<byte[], byte[]> map = indexResult.getFamilyMap(family);
+            if (map == null) {
+                continue;
+            }
+            for (byte[] entityRowkey : map.keySet()) {
                 Get get = new Get(entityRowkey);
                 if (filter != null) {
-                	get.setFilter(filter);
+                    get.setFilter(filter);
                 }
-				if(qualifiers == null) {
-					// filter all qualifiers if output qualifiers are null
-					get.addFamily(family);
-				}else {
-					for (int i = 0; i < qualifiers.length; ++i) {
-						// Return the specified qualifiers
-						get.addColumn(family, qualifiers[i]);
-					}
-				}
-				workaroundHBASE2198(get, filter,qualifiers);
-        		indexGets.add(get);
-        	}
+                if (qualifiers == null) {
+                    // filter all qualifiers if output qualifiers are null
+                    get.addFamily(family);
+                } else {
+                    for (int i = 0; i < qualifiers.length; ++i) {
+                        // Return the specified qualifiers
+                        get.addColumn(family, qualifiers[i]);
+                    }
+                }
+                workaroundHBASE2198(get, filter, qualifiers);
+                indexGets.add(get);
+            }
         }
         entityResults = tbl.get(indexGets);
-		isOpen = true;
-	}
+        isOpen = true;
+    }
 
-	@Override
-	public void close() throws IOException {
-		if(tbl != null){
-			new HTableFactory().releaseHTableInterface(tbl);
-		}
-	}
+    @Override
+    public void close() throws IOException {
+        if (tbl != null) {
+            new HTableFactory().releaseHTableInterface(tbl);
+        }
+    }
 
-	@Override
-	public InternalLog read() throws IOException {
-		if (entityResults == null) {
-			throw new IllegalArgumentException("entityResults haven't been initialized before reading");
-		}
-		InternalLog t = null;
-		while (entityResults.length > ++index) {
-			Result r = entityResults[index];
-			if (r != null) {
-				if (r.getRow() == null) {
-					continue;
-				}
-				t = HBaseInternalLogHelper.parse(indexDef.getEntityDefinition(), r, qualifiers);
-				break;
-			}
-		}
-		return t;
-	}
+    @Override
+    public InternalLog read() throws IOException {
+        if (entityResults == null) {
+            throw new IllegalArgumentException("entityResults haven't been initialized before reading");
+        }
+        InternalLog t = null;
+        while (entityResults.length > ++index) {
+            Result r = entityResults[index];
+            if (r != null) {
+                if (r.getRow() == null) {
+                    continue;
+                }
+                t = HBaseInternalLogHelper.parse(indexDef.getEntityDefinition(), r, qualifiers);
+                break;
+            }
+        }
+        return t;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexStreamReader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexStreamReader.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexStreamReader.java
index 0391d57..cf94c11 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexStreamReader.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/index/UniqueIndexStreamReader.java
@@ -27,26 +27,29 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class UniqueIndexStreamReader extends IndexStreamReader {
-	public UniqueIndexStreamReader(IndexDefinition indexDef, SearchCondition condition) {
-		super(indexDef, condition, new ArrayList<byte[]>());
-		final IndexType type = indexDef.canGoThroughIndex(condition.getQueryExpression(), indexRowkeys);
-		if (!IndexType.UNIQUE_INDEX.equals(type)) {
-			throw new IllegalArgumentException("This query can't go through index: " + condition.getQueryExpression());
-		}
-	}
+    public UniqueIndexStreamReader(IndexDefinition indexDef, SearchCondition condition) {
+        super(indexDef, condition, new ArrayList<byte[]>());
+        final IndexType type = indexDef.canGoThroughIndex(condition.getQueryExpression(), indexRowkeys);
+        if (!IndexType.UNIQUE_INDEX.equals(type)) {
+            throw new IllegalArgumentException("This query can't go through index: "
+                                               + condition.getQueryExpression());
+        }
+    }
 
-	public UniqueIndexStreamReader(IndexDefinition indexDef, SearchCondition condition, List<byte[]> indexRowkeys) {
-		super(indexDef, condition, indexRowkeys);
-	}
+    public UniqueIndexStreamReader(IndexDefinition indexDef, SearchCondition condition,
+                                   List<byte[]> indexRowkeys) {
+        super(indexDef, condition, indexRowkeys);
+    }
 
-	@Override
-	protected LogReader createIndexReader() {
-		final EntityDefinition entityDef = indexDef.getEntityDefinition();
-//		final
-		byte[][] outputQualifiers = null;
-		if(!condition.isOutputAll()) {
-			outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef, condition.getOutputFields());
-		}
-		return new UniqueIndexLogReader(indexDef, indexRowkeys, outputQualifiers, condition.getFilter());
-	}
+    @Override
+    protected LogReader createIndexReader() {
+        final EntityDefinition entityDef = indexDef.getEntityDefinition();
+        // final
+        byte[][] outputQualifiers = null;
+        if (!condition.isOutputAll()) {
+            outputQualifiers = HBaseInternalLogHelper.getOutputQualifiers(entityDef,
+                                                                          condition.getOutputFields());
+        }
+        return new UniqueIndexLogReader(indexDef, indexRowkeys, outputQualifiers, condition.getFilter());
+    }
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/BooleanSerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/BooleanSerDeser.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/BooleanSerDeser.java
index cf40e31..2e0882b 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/BooleanSerDeser.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/BooleanSerDeser.java
@@ -21,34 +21,35 @@ package org.apache.eagle.log.entity.meta;
  */
 public class BooleanSerDeser implements EntitySerDeser<Boolean> {
 
-	public BooleanSerDeser(){}
+    public BooleanSerDeser() {
+    }
 
-	@Override
-	public Boolean deserialize(byte[] bytes){
-		if(bytes != null && bytes.length > 0){
-			if(bytes[0] == 0){
-				return false;
-			}else if(bytes[0] == 1){
-				return true;
-			}
-		}
-		return null;
-	}
+    @Override
+    public Boolean deserialize(byte[] bytes) {
+        if (bytes != null && bytes.length > 0) {
+            if (bytes[0] == 0) {
+                return false;
+            } else if (bytes[0] == 1) {
+                return true;
+            }
+        }
+        return null;
+    }
 
-	@Override
-	public byte[] serialize(Boolean obj){
-		if(obj != null){
-			if(obj){
-				return new byte[]{1};
-			}else{
-				return new byte[]{0};
-			}
-		}
-		return null;
-	}
+    @Override
+    public byte[] serialize(Boolean obj) {
+        if (obj != null) {
+            if (obj) {
+                return new byte[] { 1 };
+            } else {
+                return new byte[] { 0 };
+            }
+        }
+        return null;
+    }
 
-	@Override
-	public Class<Boolean> type() {
-		return Boolean.class;
-	}
+    @Override
+    public Class<Boolean> type() {
+        return Boolean.class;
+    }
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Column.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Column.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Column.java
index b64e528..73978e9 100644
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Column.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Column.java
@@ -21,8 +21,10 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-@Target({ElementType.FIELD})
+@Target({
+         ElementType.FIELD
+})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface Column {
-	String value() default "";
+    String value() default "";
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/ColumnFamily.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/ColumnFamily.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/ColumnFamily.java
index 6e3e9c6..cb03e65 100644
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/ColumnFamily.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/ColumnFamily.java
@@ -21,8 +21,10 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-@Target({ElementType.TYPE})
+@Target({
+         ElementType.TYPE
+})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface ColumnFamily {
-	String value() default "f";
+    String value() default "f";
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DefaultJavaObjctSerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DefaultJavaObjctSerDeser.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DefaultJavaObjctSerDeser.java
index 24385a9..36fc63f 100644
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DefaultJavaObjctSerDeser.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DefaultJavaObjctSerDeser.java
@@ -22,11 +22,11 @@ package org.apache.eagle.log.entity.meta;
 import org.apache.eagle.common.SerializableUtils;
 
 public class DefaultJavaObjctSerDeser implements EntitySerDeser<Object> {
-    public final static  EntitySerDeser<Object> INSTANCE = new DefaultJavaObjctSerDeser();
+    public static final EntitySerDeser<Object> INSTANCE = new DefaultJavaObjctSerDeser();
 
     @Override
     public Object deserialize(byte[] bytes) {
-        return SerializableUtils.deserializeFromByteArray(bytes,"Deserialize from java object bytes");
+        return SerializableUtils.deserializeFromByteArray(bytes, "Deserialize from java object bytes");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Double2DArraySerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Double2DArraySerDeser.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Double2DArraySerDeser.java
index 27b011c..b3af8a6 100644
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Double2DArraySerDeser.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/Double2DArraySerDeser.java
@@ -25,22 +25,23 @@ import java.io.IOException;
  * @since 7/22/15
  */
 public class Double2DArraySerDeser implements EntitySerDeser<double[][]> {
-    private final int SIZE = 8;
+    private static final int SIZE = 8;
+
     @Override
-    public double[][] deserialize(byte[] bytes){
-//        if((bytes.length-4) % SIZE != 0)
-//            return null;
+    public double[][] deserialize(byte[] bytes) {
+        // if((bytes.length-4) % SIZE != 0)
+        // return null;
         int offset = 0;
         // get size of int array
         int rowSize = ByteUtil.bytesToInt(bytes, offset);
         offset += 4;
 
         double[][] data = new double[rowSize][];
-        for(int i=0; i<rowSize; i++) {
+        for (int i = 0; i < rowSize; i++) {
             int colSize = ByteUtil.bytesToInt(bytes, offset);
             offset += 4;
             double[] values = null;
-            if (colSize >= 0){
+            if (colSize >= 0) {
                 values = new double[colSize];
                 for (int j = 0; j < colSize; j++) {
                     values[j] = ByteUtil.bytesToDouble(bytes, offset);
@@ -54,27 +55,28 @@ public class Double2DArraySerDeser implements EntitySerDeser<double[][]> {
     }
 
     /**
-     *
      * @param obj
      * @return
      */
     @Override
-    public byte[] serialize(double[][] obj){
-        if(obj == null) return null;
+    public byte[] serialize(double[][] obj) {
+        if (obj == null) {
+            return null;
+        }
         ByteArrayOutputStream data = new ByteArrayOutputStream();
         int size = obj.length;
         byte[] sizeBytes = ByteUtil.intToBytes(size);
-        data.write(sizeBytes,0,sizeBytes.length);
+        data.write(sizeBytes, 0, sizeBytes.length);
 
-        try{
-            for(double[] o:obj){
-                if(o!=null){
+        try {
+            for (double[] o : obj) {
+                if (o != null) {
                     data.write(ByteUtil.intToBytes(o.length));
-                    for(double d:o){
-                        data.write(ByteUtil.doubleToBytes(d),0,SIZE);
+                    for (double d : o) {
+                        data.write(ByteUtil.doubleToBytes(d), 0, SIZE);
                     }
-                }else{
-                    data.write(ByteUtil.intToBytes(-1),0,4);
+                } else {
+                    data.write(ByteUtil.intToBytes(-1), 0, 4);
                 }
             }
         } catch (IOException e) {
@@ -94,4 +96,4 @@ public class Double2DArraySerDeser implements EntitySerDeser<double[][]> {
     public Class<double[][]> type() {
         return double[][].class;
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleArraySerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleArraySerDeser.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleArraySerDeser.java
index d87e31c..a8eb965 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleArraySerDeser.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleArraySerDeser.java
@@ -18,51 +18,54 @@ package org.apache.eagle.log.entity.meta;
 
 import org.apache.eagle.common.ByteUtil;
 
-public class DoubleArraySerDeser implements EntitySerDeser<double[]>{
+public class DoubleArraySerDeser implements EntitySerDeser<double[]> {
 
-	public DoubleArraySerDeser(){}
+    private static final int SIZE = 8;
 
-	private final int SIZE = 8;
-		@Override
-		public double[] deserialize(byte[] bytes){
-			if((bytes.length-4) % SIZE != 0)
-				return null;
-			int offset = 0;
-			// get size of int array
-			int size = ByteUtil.bytesToInt(bytes, offset);
-			offset += 4;
-			double[] values = new double[size];
-			for(int i=0; i<size; i++){
-				values[i] = ByteUtil.bytesToDouble(bytes, offset);
-				offset += SIZE;
-			}
-			return values;
-		}
-		
-		/**
-		 * 
-		 * @param obj
-		 * @return
-		 */
-		@Override
-		public byte[] serialize(double[] obj){
-			if(obj == null)
-				return null;
-			int size = obj.length;
-			byte[] array = new byte[4 + SIZE*size];
-			byte[] first = ByteUtil.intToBytes(size);
-			int offset = 0;
-			System.arraycopy(first, 0, array, offset, first.length);
-			offset += first.length;
-			for(int i=0; i<size; i++){
-				System.arraycopy(ByteUtil.doubleToBytes(obj[i]), 0, array, offset, SIZE);
-				offset += SIZE;
-			}
-			return array;
-		}
+    public DoubleArraySerDeser() {
+    }
 
-	@Override
-	public Class<double[]> type() {
-		return double[].class;
-	}
+    @Override
+    public double[] deserialize(byte[] bytes) {
+        if ((bytes.length - 4) % SIZE != 0) {
+            return null;
+        }
+        int offset = 0;
+        // get size of int array
+        int size = ByteUtil.bytesToInt(bytes, offset);
+        offset += 4;
+        double[] values = new double[size];
+        for (int i = 0; i < size; i++) {
+            values[i] = ByteUtil.bytesToDouble(bytes, offset);
+            offset += SIZE;
+        }
+        return values;
+    }
+
+    /**
+     * @param obj
+     * @return
+     */
+    @Override
+    public byte[] serialize(double[] obj) {
+        if (obj == null) {
+            return null;
+        }
+        int size = obj.length;
+        byte[] array = new byte[4 + SIZE * size];
+        byte[] first = ByteUtil.intToBytes(size);
+        int offset = 0;
+        System.arraycopy(first, 0, array, offset, first.length);
+        offset += first.length;
+        for (int i = 0; i < size; i++) {
+            System.arraycopy(ByteUtil.doubleToBytes(obj[i]), 0, array, offset, SIZE);
+            offset += SIZE;
+        }
+        return array;
+    }
+
+    @Override
+    public Class<double[]> type() {
+        return double[].class;
+    }
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleSerDeser.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleSerDeser.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleSerDeser.java
index 330a99d..bf58d39 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleSerDeser.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/DoubleSerDeser.java
@@ -18,24 +18,26 @@ package org.apache.eagle.log.entity.meta;
 
 import org.apache.eagle.common.ByteUtil;
 
-public class DoubleSerDeser implements EntitySerDeser<Double>{
+public class DoubleSerDeser implements EntitySerDeser<Double> {
 
-	@Override
-	public Double deserialize(byte[] bytes){
-		if(bytes.length < 8)
-			return null;
-		return ByteUtil.bytesToDouble(bytes);
-	}
-	
-	@Override
-	public byte[] serialize(Double obj){
-		if(obj == null)
-			return null;
-		return ByteUtil.doubleToBytes(obj);
-	}
+    @Override
+    public Double deserialize(byte[] bytes) {
+        if (bytes.length < 8) {
+            return null;
+        }
+        return ByteUtil.bytesToDouble(bytes);
+    }
 
-	@Override
-	public Class<Double> type(){
-		return Double.class;
-	}
+    @Override
+    public byte[] serialize(Double obj) {
+        if (obj == null) {
+            return null;
+        }
+        return ByteUtil.doubleToBytes(obj);
+    }
+
+    @Override
+    public Class<Double> type() {
+        return Double.class;
+    }
 }

http://git-wip-us.apache.org/repos/asf/eagle/blob/6e919c2e/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/EntityDefinition.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/EntityDefinition.java b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/EntityDefinition.java
index d2d9eef..c1f4a24 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/EntityDefinition.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/entity/meta/EntityDefinition.java
@@ -32,295 +32,333 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- *
- * This object should be regarded as read-only metadata for an entity as it will be shared across all entity object
- * with the same entity name, so don't try to set different values for any of the fields, 
- * otherwise it's not thread safe
+ * This object should be regarded as read-only metadata for an entity as it will be shared across all entity
+ * object with the same entity name, so don't try to set different values for any of the fields, otherwise
+ * it's not thread safe
  */
-public class EntityDefinition implements Writable{
-	private final static Logger LOG = LoggerFactory.getLogger(EntityDefinition.class);
-
-	private Class<? extends TaggedLogAPIEntity> entityClass;
-	private String table;
-	private String columnFamily;
-	// TODO prefix be within search/get condition instead of entity definition. Topology entity should have pre-defined prefix. 
-	private String prefix;
-	private String service;
-	private String serviceCreationPath;
-	private String serviceDeletionPath;
-	private String[] partitions;
-	private Map<String, Qualifier> displayNameMap = new HashMap<String, Qualifier>();
-	private Map<String, Qualifier> qualifierNameMap = new HashMap<String, Qualifier>();
-	private Map<String, Method> qualifierGetterMap = new HashMap<String, Method>();
-	private String[] tags;
-	private boolean isTimeSeries;
-	private MetricDefinition metricDefinition;
-	private IndexDefinition[] indexes;
-	
-
-	public EntityDefinition(){}
-	
-	public MetricDefinition getMetricDefinition() {
-		return metricDefinition;
-	}
-	public void setMetricDefinition(MetricDefinition metricDefinition) {
-		this.metricDefinition = metricDefinition;
-	}
-	public boolean isTimeSeries() {
-		return isTimeSeries;
-	}
-	public void setTimeSeries(boolean isTimeSeries) {
-		this.isTimeSeries = isTimeSeries;
-	}
-	public String getColumnFamily() {
-		return columnFamily;
-	}
-	public void setColumnFamily(String columnFamily) {
-		this.columnFamily = columnFamily;
-	}
-	public Class<? extends TaggedLogAPIEntity> getEntityClass() {
-		return entityClass;
-	}
-	public void setEntityClass(Class<? extends TaggedLogAPIEntity> entityClass) {
-		this.entityClass = entityClass;
-	}
-	public String getTable() {
-		return table;
-	}
-	public void setTable(String table) {
-		this.table = table;
-	}
-	public Map<String, Qualifier> getDisplayNameMap() {
-		return displayNameMap;
-	}
-	public void setDisplayNameMap(Map<String, Qualifier> displayNameMap) {
-		this.displayNameMap = displayNameMap;
-	}
-	public Map<String, Qualifier> getQualifierNameMap() {
-		return qualifierNameMap;
-	}
-	public void setQualifierNameMap(Map<String, Qualifier> qualifierNameMap) {
-		this.qualifierNameMap = qualifierNameMap;
-	}
-	public String getPrefix() {
-		return prefix;
-	}
-	public void setPrefix(String prefix) {
-		this.prefix = prefix;
-	}
-	public String getService() {
-		return service;
-	}
-	public void setService(String service) {
-		this.service = service;
-	}
-	public String getServiceCreationPath() {
-		return serviceCreationPath;
-	}
-	public void setServiceCreationPath(String serviceCreationPath) {
-		this.serviceCreationPath = serviceCreationPath;
-	}
-	public String getServiceDeletionPath() {
-		return serviceDeletionPath;
-	}
-	public void setServiceDeletionPath(String serviceDeletionPath) {
-		this.serviceDeletionPath = serviceDeletionPath;
-	}
-	public String[] getPartitions() {
-		return partitions;
-	}
-	public void setPartitions(String[] partitions) {
-		this.partitions = partitions;
-	}
-	public IndexDefinition[] getIndexes() {
-		return indexes;
-	}
-	public void setIndexes(IndexDefinition[] indexes) {
-		this.indexes = indexes;
-	}
-	public Map<String, Method> getQualifierGetterMap() {
-		return qualifierGetterMap;
-	}
-	public void setQualifierGetterMap(Map<String, Method> qualifierGetterMap) {
-		this.qualifierGetterMap = qualifierGetterMap;
-	}
-	public String[] getTags(){
-		return tags;
-	}
-	public void setTags(String[] tags){
-		this.tags = tags;
-	}
-
-//	public Map<String,String> getQualifierDisplayNameMap(){
-//		Map<String,String> qualifierDisplayNameMap = new HashMap<String, String>();
-//		for(Map.Entry<String,Qualifier> entry: qualifierNameMap.entrySet()){
-//			qualifierDisplayNameMap.put(entry.getKey(),entry.getValue().getDisplayName());
-//		}
-//		return qualifierDisplayNameMap;
-//	}
-	
-	/**
-	 * a filed is a tag when this field is neither in qualifierNameMap nor in displayNameMap
-	 * @param field
-	 * @return
-	 */
-	public boolean isTag(String field){
-		return (qualifierNameMap.get(field) == null && displayNameMap.get(field) == null);
-//		return (qualifierNameMap.get(field) == null);
-	}
-
-	/**
-	 * Check if the specified field is a partition tag field
-	 */
-	public boolean isPartitionTag(String field) {
-		if (partitions == null || (!isTag(field))) {
-			return false;
-		}
-		for (String partition : partitions) {
-			if (partition.equals(field)) {
-				return true;
-			}
-		}
-		return false;
-
-	}
-	
-	public Object getValue(TaggedLogAPIEntity entity, String field) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
-		if (!entityClass.equals(entity.getClass())) {
-			if ((entityClass.equals(GenericMetricEntity.class) && entity.getClass().equals(GenericMetricShadowEntity.class))) {
-				GenericMetricShadowEntity e = (GenericMetricShadowEntity)entity;
-				return e.getValue();
-			} else {
-				throw new IllegalArgumentException("Invalid entity type: " + entity.getClass().getSimpleName());
-			}
-		}
-		final Method m = qualifierGetterMap.get(field);
-		if (m == null) {
-			// The field is a tag
-			if (entity.getTags() != null) {
-				return entity.getTags().get(field);
-			}
-		}
-		if (m != null) {
-			return m.invoke(entity);
-		}
-		return null;
-	}
-
-
-	@Override
-	public void write(DataOutput out) throws IOException {
-		out.writeUTF(entityClass.getName());
-		out.writeUTF(table);
-		out.writeUTF(columnFamily);
-		out.writeUTF(prefix);
-		out.writeUTF(service);
-
-		int partitionsLen = 0;
-		if(partitions != null) partitionsLen =partitions.length;
-		out.writeInt(partitionsLen);
-		for (int i = 0; i < partitionsLen; i++) {
-			out.writeUTF(partitions[i]);
-		}
-
-		int displayNameMapSize = displayNameMap.size();
-		out.writeInt(displayNameMapSize);
-		for(Map.Entry<String,Qualifier> entry: displayNameMap.entrySet()){
-			out.writeUTF(entry.getKey());
-			entry.getValue().write(out);
-		}
-
-		int qualifierNameMapSize = qualifierNameMap.size();
-		out.writeInt(qualifierNameMapSize);
-		for(Map.Entry<String,Qualifier> entry: qualifierNameMap.entrySet()){
-			out.writeUTF(entry.getKey());
-			entry.getValue().write(out);
-		}
-
-		// TODO: write qualifierGetterMap
-		out.writeBoolean(isTimeSeries);
-
-		boolean hasMetricDefinition = metricDefinition != null;
-		out.writeBoolean(hasMetricDefinition);
-		if(hasMetricDefinition) {
-			// write MetricDefinition
-			metricDefinition.write(out);
-		}
-
-		// TODO: write indexes
-	}
-
-
-	public void setEntityDefinition(EntityDefinition ed){
-		this.entityClass = ed.getEntityClass();
-		this.table = ed.getTable();
-		this.columnFamily = ed.getColumnFamily();
-		this.prefix = ed.getPrefix();
-		this.service = ed.getService();
-		this.partitions = ed.getPartitions();
-		this.displayNameMap = ed.getDisplayNameMap();
-		this.qualifierGetterMap = ed.getQualifierGetterMap();
+public class EntityDefinition implements Writable {
+    private static final Logger LOG = LoggerFactory.getLogger(EntityDefinition.class);
+
+    private Class<? extends TaggedLogAPIEntity> entityClass;
+    private String table;
+    private String columnFamily;
+    // TODO prefix be within search/get condition instead of entity definition. Topology entity should have
+    // pre-defined prefix.
+    private String prefix;
+    private String service;
+    private String serviceCreationPath;
+    private String serviceDeletionPath;
+    private String[] partitions;
+    private Map<String, Qualifier> displayNameMap = new HashMap<String, Qualifier>();
+    private Map<String, Qualifier> qualifierNameMap = new HashMap<String, Qualifier>();
+    private Map<String, Method> qualifierGetterMap = new HashMap<String, Method>();
+    private String[] tags;
+    private boolean isTimeSeries;
+    private MetricDefinition metricDefinition;
+    private IndexDefinition[] indexes;
+
+    public EntityDefinition() {
+    }
+
+    public MetricDefinition getMetricDefinition() {
+        return metricDefinition;
+    }
+
+    public void setMetricDefinition(MetricDefinition metricDefinition) {
+        this.metricDefinition = metricDefinition;
+    }
+
+    public boolean isTimeSeries() {
+        return isTimeSeries;
+    }
+
+    public void setTimeSeries(boolean isTimeSeries) {
+        this.isTimeSeries = isTimeSeries;
+    }
+
+    public String getColumnFamily() {
+        return columnFamily;
+    }
+
+    public void setColumnFamily(String columnFamily) {
+        this.columnFamily = columnFamily;
+    }
+
+    public Class<? extends TaggedLogAPIEntity> getEntityClass() {
+        return entityClass;
+    }
+
+    public void setEntityClass(Class<? extends TaggedLogAPIEntity> entityClass) {
+        this.entityClass = entityClass;
+    }
+
+    public String getTable() {
+        return table;
+    }
+
+    public void setTable(String table) {
+        this.table = table;
+    }
+
+    public Map<String, Qualifier> getDisplayNameMap() {
+        return displayNameMap;
+    }
+
+    public void setDisplayNameMap(Map<String, Qualifier> displayNameMap) {
+        this.displayNameMap = displayNameMap;
+    }
+
+    public Map<String, Qualifier> getQualifierNameMap() {
+        return qualifierNameMap;
+    }
+
+    public void setQualifierNameMap(Map<String, Qualifier> qualifierNameMap) {
+        this.qualifierNameMap = qualifierNameMap;
+    }
+
+    public String getPrefix() {
+        return prefix;
+    }
+
+    public void setPrefix(String prefix) {
+        this.prefix = prefix;
+    }
+
+    public String getService() {
+        return service;
+    }
+
+    public void setService(String service) {
+        this.service = service;
+    }
+
+    public String getServiceCreationPath() {
+        return serviceCreationPath;
+    }
+
+    public void setServiceCreationPath(String serviceCreationPath) {
+        this.serviceCreationPath = serviceCreationPath;
+    }
+
+    public String getServiceDeletionPath() {
+        return serviceDeletionPath;
+    }
+
+    public void setServiceDeletionPath(String serviceDeletionPath) {
+        this.serviceDeletionPath = serviceDeletionPath;
+    }
+
+    public String[] getPartitions() {
+        return partitions;
+    }
+
+    public void setPartitions(String[] partitions) {
+        this.partitions = partitions;
+    }
+
+    public IndexDefinition[] getIndexes() {
+        return indexes;
+    }
+
+    public void setIndexes(IndexDefinition[] indexes) {
+        this.indexes = indexes;
+    }
+
+    public Map<String, Method> getQualifierGetterMap() {
+        return qualifierGetterMap;
+    }
+
+    public void setQualifierGetterMap(Map<String, Method> qualifierGetterMap) {
+        this.qualifierGetterMap = qualifierGetterMap;
+    }
+
+    public String[] getTags() {
+        return tags;
+    }
+
+    public void setTags(String[] tags) {
+        this.tags = tags;
+    }
+
+    // public Map<String,String> getQualifierDisplayNameMap(){
+    // Map<String,String> qualifierDisplayNameMap = new HashMap<String, String>();
+    // for(Map.Entry<String,Qualifier> entry: qualifierNameMap.entrySet()){
+    // qualifierDisplayNameMap.put(entry.getKey(),entry.getValue().getDisplayName());
+    // }
+    // return qualifierDisplayNameMap;
+    // }
+
+    /**
+     * a filed is a tag when this field is neither in qualifierNameMap nor in displayNameMap
+     * 
+     * @param field
+     * @return
+     */
+    public boolean isTag(String field) {
+        return (qualifierNameMap.get(field) == null && displayNameMap.get(field) == null);
+        // return (qualifierNameMap.get(field) == null);
+    }
+
+    /**
+     * Check if the specified field is a partition tag field
+     */
+    public boolean isPartitionTag(String field) {
+        if (partitions == null || (!isTag(field))) {
+            return false;
+        }
+        for (String partition : partitions) {
+            if (partition.equals(field)) {
+                return true;
+            }
+        }
+        return false;
+
+    }
+
+    public Object getValue(TaggedLogAPIEntity entity, String field)
+        throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+        if (!entityClass.equals(entity.getClass())) {
+            if ((entityClass.equals(GenericMetricEntity.class)
+                 && entity.getClass().equals(GenericMetricShadowEntity.class))) {
+                GenericMetricShadowEntity e = (GenericMetricShadowEntity)entity;
+                return e.getValue();
+            } else {
+                throw new IllegalArgumentException("Invalid entity type: "
+                                                   + entity.getClass().getSimpleName());
+            }
+        }
+        final Method m = qualifierGetterMap.get(field);
+        if (m == null) {
+            // The field is a tag
+            if (entity.getTags() != null) {
+                return entity.getTags().get(field);
+            }
+        }
+        if (m != null) {
+            return m.invoke(entity);
+        }
+        return null;
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.writeUTF(entityClass.getName());
+        out.writeUTF(table);
+        out.writeUTF(columnFamily);
+        out.writeUTF(prefix);
+        out.writeUTF(service);
+
+        int partitionsLen = 0;
+        if (partitions != null) {
+            partitionsLen = partitions.length;
+        }
+        out.writeInt(partitionsLen);
+        for (int i = 0; i < partitionsLen; i++) {
+            out.writeUTF(partitions[i]);
+        }
+
+        int displayNameMapSize = displayNameMap.size();
+        out.writeInt(displayNameMapSize);
+        for (Map.Entry<String, Qualifier> entry : displayNameMap.entrySet()) {
+            out.writeUTF(entry.getKey());
+            entry.getValue().write(out);
+        }
+
+        int qualifierNameMapSize = qualifierNameMap.size();
+        out.writeInt(qualifierNameMapSize);
+        for (Map.Entry<String, Qualifier> entry : qualifierNameMap.entrySet()) {
+            out.writeUTF(entry.getKey());
+            entry.getValue().write(out);
+        }
+
+        // TODO: write qualifierGetterMap
+        out.writeBoolean(isTimeSeries);
+
+        boolean hasMetricDefinition = metricDefinition != null;
+        out.writeBoolean(hasMetricDefinition);
+        if (hasMetricDefinition) {
+            // write MetricDefinition
+            metricDefinition.write(out);
+        }
+
+        // TODO: write indexes
+    }
+
+    public void setEntityDefinition(EntityDefinition ed) {
+        this.entityClass = ed.getEntityClass();
+        this.table = ed.getTable();
+        this.columnFamily = ed.getColumnFamily();
+        this.prefix = ed.getPrefix();
+        this.service = ed.getService();
+        this.partitions = ed.getPartitions();
+        this.displayNameMap = ed.getDisplayNameMap();
+        this.qualifierGetterMap = ed.getQualifierGetterMap();
         this.qualifierNameMap = ed.getQualifierNameMap();
-		this.isTimeSeries = ed.isTimeSeries();
-		this.metricDefinition = ed.metricDefinition;
-		this.indexes = ed.getIndexes();
-	}
-
-	//////////////////////////////////////////////
-	// 	TODO: Cache object for reading in region side
-	//////////////////////////////////////////////
-	//	private final static Map<String,EntityDefinition> _classEntityDefinitionCache = new HashMap<String, EntityDefinition>();
-
-	@Override
-	public void readFields(DataInput in) throws IOException {
-		String entityClassName = in.readUTF();
-//		EntityDefinition _cached = _classEntityDefinitionCache.get(entityClassName);
-//		if(_cached !=null){
-//			setEntityDefinition(_cached);
-//			LOG.info("Got cached definition for entity: "+entityClassName);
-//			return;
-//		}
-		if(LOG.isDebugEnabled()) LOG.debug("Reading EntityDefinition entity: "+entityClassName);
-		try {
-			entityClass = (Class<? extends TaggedLogAPIEntity>) Class.forName(entityClassName);
-		} catch (Exception e) {
-			// ignore
-		}
-		table = in.readUTF();
-		columnFamily = in.readUTF();
-		prefix = in.readUTF();
-		service = in.readUTF();
-
-		int partitionsLen = in.readInt();
-		partitions = new String[partitionsLen];
-		for (int i = 0; i < partitionsLen; i++) {
-			partitions[i] = in.readUTF();
-		}
-		int displayNameMapSize = in.readInt();
-		for(int i=0;i<displayNameMapSize;i++){
-			String key = in.readUTF();
-			Qualifier value = new Qualifier();
-			value.readFields(in);
-			displayNameMap.put(key,value);
-		}
-		int qualifierNameMapSize = in.readInt();
-		for(int i=0;i<qualifierNameMapSize;i++){
-			String key = in.readUTF();
-			Qualifier value = new Qualifier();
-			value.readFields(in);
-			qualifierNameMap.put(key,value);
-		}
-		// TODO: readFields qualifierGetterMap
-		isTimeSeries = in.readBoolean();
-
-		// readFields MetricDefinition
-		boolean hasMetricDefinition = in.readBoolean();
-		if(hasMetricDefinition) {
-			if(LOG.isDebugEnabled()) LOG.debug("reading metricDefinition");
-			metricDefinition = new MetricDefinition();
-			metricDefinition.readFields(in);
-		}
-		// TODO: readFields indexes
-//		_classEntityDefinitionCache.put(entityClassName,this);
-	}
-}
\ No newline at end of file
+        this.isTimeSeries = ed.isTimeSeries();
+        this.metricDefinition = ed.metricDefinition;
+        this.indexes = ed.getIndexes();
+    }
+
+    //////////////////////////////////////////////
+    // TODO: Cache object for reading in region side
+    //////////////////////////////////////////////
+    // private static final Map<String,EntityDefinition> _classEntityDefinitionCache = new HashMap<String,
+    ////////////////////////////////////////////// EntityDefinition>();
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        String entityClassName = in.readUTF();
+        // EntityDefinition _cached = _classEntityDefinitionCache.get(entityClassName);
+        // if(_cached !=null){
+        // setEntityDefinition(_cached);
+        // LOG.info("Got cached definition for entity: "+entityClassName);
+        // return;
+        // }
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Reading EntityDefinition entity: " + entityClassName);
+        }
+        try {
+            entityClass = (Class<? extends TaggedLogAPIEntity>)Class.forName(entityClassName);
+        } catch (Exception e) {
+            // ignore
+        }
+        table = in.readUTF();
+        columnFamily = in.readUTF();
+        prefix = in.readUTF();
+        service = in.readUTF();
+
+        int partitionsLen = in.readInt();
+        partitions = new String[partitionsLen];
+        for (int i = 0; i < partitionsLen; i++) {
+            partitions[i] = in.readUTF();
+        }
+        int displayNameMapSize = in.readInt();
+        for (int i = 0; i < displayNameMapSize; i++) {
+            String key = in.readUTF();
+            Qualifier value = new Qualifier();
+            value.readFields(in);
+            displayNameMap.put(key, value);
+        }
+        int qualifierNameMapSize = in.readInt();
+        for (int i = 0; i < qualifierNameMapSize; i++) {
+            String key = in.readUTF();
+            Qualifier value = new Qualifier();
+            value.readFields(in);
+            qualifierNameMap.put(key, value);
+        }
+        // TODO: readFields qualifierGetterMap
+        isTimeSeries = in.readBoolean();
+
+        // readFields MetricDefinition
+        boolean hasMetricDefinition = in.readBoolean();
+        if (hasMetricDefinition) {
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("reading metricDefinition");
+            }
+            metricDefinition = new MetricDefinition();
+            metricDefinition.readFields(in);
+        }
+        // TODO: readFields indexes
+        // _classEntityDefinitionCache.put(entityClassName,this);
+    }
+}