Merge remote-tracking branch 'origin/tizen' into da-opengl 56/26656/1
authorHyunjong.park <phjwithyou.park@samsung.com>
Wed, 27 Aug 2014 08:33:49 +0000 (17:33 +0900)
committerHyunjong.park <phjwithyou.park@samsung.com>
Wed, 27 Aug 2014 08:33:49 +0000 (17:33 +0900)
Conflicts:
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStateDataMaker.java

Change-Id: I35de3846bda0e17b7c133416cc200bdad0814ba8
Signed-off-by: Hyunjong.park <phjwithyou.park@samsung.com>
12 files changed:
1  2 
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/DALimit.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallstackTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLExtractUniformDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/DB/GLCommonStateDBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLCommonStateDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLContextSharingDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLStatisticsDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/GLTextureStateDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/data/type/GLRedundantDataType.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java

@@@ -393,11 -384,9 +396,8 @@@ public class AnalyzerManager 
                                        e.printStackTrace();
                                }
                                screenshotTimer = new Timer();
 -                              screenshotTimer.scheduleAtFixedRate(new ScreenshotTimerTask(),
 -                                              1000, period);                          
 +                              screenshotTimer.scheduleAtFixedRate(new ScreenshotTimerTask(), 1000, period);
                        }
-                       screenshotTimer = new Timer();
-                       screenshotTimer.scheduleAtFixedRate(new ScreenshotTimerTask(), 1000, period);
                }
        }
  
index 290e4f0,0000000..e736de0
mode 100644,000000..100644
--- /dev/null
@@@ -1,170 -1,0 +1,170 @@@
- import org.tizen.dynamicanalyzer.util.DALogger;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact: 
 + * Hyunjong Park <phjwithyou.park@samsung.com>
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl;
 +
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
-                       DALogger.getInstance().error("undefine uniform api : " + apiName);
++import org.tizen.dynamicanalyzer.util.Logger;
 +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 +
 +public class GLExtractUniformDataMaker {
 +
 +      static final int PRINT_UNIFORM_VALUE_LENGTH = 10;
 +
 +      boolean isUniformAPI(String apiName) {
 +              if (apiName.contains(GLAPINameDefine.API_UNIFORM)) {
 +                      return true;
 +              } else {
 +                      return false;
 +              }
 +      }
 +
 +      String getUniformData(String apiName, String parameter) {
 +              if (apiName.contains(GLAPINameDefine.API_UNIFORM_MATRIX)) {
 +                      return getUniformDataFromPointer(apiName, parameter);
 +              } else if (apiName.contains(GLAPINameDefine.API_UNIFORM_1I)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_2I)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_3I)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_4I)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_1F)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_2F)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_3F)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_4F)) {
 +                      return getUniformParameterValue(parameter);
 +              } else if (apiName.contains(GLAPINameDefine.API_UNIFORM_1IV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_2IV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_3IV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_4IV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_1FV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_2FV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_3FV)
 +                              || apiName.contains(GLAPINameDefine.API_UNIFORM_4FV)) {
 +                      return getUniformDataFromPointer(apiName, parameter);
 +              } else {
-                       DALogger.getInstance().error(
++                      Logger.error("undefine uniform api : " + apiName);
 +              }
 +              return null;
 +      }
 +
 +      private String getUniformParameterValue(String parameter) {
 +              String[] parameterArray = getParameterArray(parameter);
 +              StringBuffer returnUniform = new StringBuffer();
 +              if(null == parameterArray){
 +                      return parameter;
 +              }
 +              for (int i = 1; i < parameterArray.length; i++) {
 +                      returnUniform.append(parameterArray[i]);
 +                      if (i != parameterArray.length - 1) {
 +                              returnUniform.append(CommonConstants.COMMA).append(CommonConstants.SPACE);
 +                      }
 +              }
 +              return returnUniform.toString();
 +      }
 +
 +      private String getUniformDataFromPointer(String apiName, String parameter) {
 +              String[] uniformArray = getParameterArray(getUniformParameter(parameter));
 +              if (null == uniformArray) {
-                       DALogger.getInstance().error("undefine uniform api : " + apiName);
++                      Logger.error(
 +                                      "parameter size is wrong : " + apiName + " parameter : " + parameter);
 +                      return parameter;
 +              }
 +              return getAlignmentTableFormat(apiName, uniformArray);
 +      }
 +
 +      
 +      private String getAlignmentTableFormat(String apiName, String[] uniformArray) {
 +              int uniformColumnSize = getUnifomColumnSize(apiName);
 +              StringBuffer returnUniformValue = new StringBuffer(CommonConstants.TAB);
 +              //cipher correction to look better in the table view.
 +              for (int i = 0, columnIndex = 1; i < uniformArray.length; i++, columnIndex++) {
 +                      if (AnalyzerUtil.isInteger(uniformArray[i])) {
 +                              returnUniformValue.append(String.format("%010d", uniformArray[i]));//$NON-NLS-1$
 +                      } else {
 +                              returnUniformValue.append(getFloatValueToDefineLength(uniformArray[i]));
 +                      }
 +                      if (i == uniformArray.length - 1) {
 +                              continue;
 +                      }
 +                      returnUniformValue.append(CommonConstants.COMMA).append(CommonConstants.SPACE);
 +                      if (columnIndex % uniformColumnSize == 0) {
 +                              returnUniformValue.append(CommonConstants.NEW_LINE).append(CommonConstants.TAB);
 +                      }
 +              }
 +              return returnUniformValue.toString();
 +      }
 +
 +      private String getFloatValueToDefineLength(String value) {
 +              if (!value.contains(CommonConstants.DOT)) {
 +                      return value;
 +              }
 +              String floatValue = String.format("%.7f", Double.parseDouble(value));//$NON-NLS-1$
 +              String[] floatValueSplit = floatValue.split("\\.");//$NON-NLS-1$
 +              String aboveValue = floatValueSplit[0];
 +              StringBuffer returnValue = new StringBuffer();
 +              if (!aboveValue.contains("-")) {//$NON-NLS-1$
 +                      returnValue.append(CommonConstants.SPACE);
 +              }
 +              returnValue.append(aboveValue).append(CommonConstants.DOT);
 +              returnValue.append(floatValueSplit[1]);
 +              if (returnValue.toString().length() > PRINT_UNIFORM_VALUE_LENGTH) {
 +                      returnValue.replace(10, returnValue.toString().length(), CommonConstants.EMPTY);
 +              }
 +              return returnValue.toString();
 +      }
 +
 +      private String[] getParameterArray(String uniformValue) {
 +              if (!uniformValue.contains(CommonConstants.COMMA)) {
 +                      return null;
 +              }
 +              return uniformValue.split(CommonConstants.COMMA);
 +      }
 +
 +      private String getUniformParameter(String parameter) {
 +              if (!parameter.contains(CommonConstants.OPEN_SQUARE_BRACKET)) {
 +                      return parameter;
 +              }
 +              String[] parameterSplit = parameter.split("\\[");//$NON-NLS-1$
 +              String returnUniformValue = parameterSplit[parameterSplit.length - 1];
 +              return returnUniformValue.replace(CommonConstants.CLOSE_SQUARE_BRACKET,
 +                              CommonConstants.EMPTY);
 +      }
 +
 +      private int getUnifomColumnSize(String apiName) {
 +              if (apiName.contains("1")) {//$NON-NLS-1$
 +                      return 1;
 +              } else if (apiName.contains("2")) {//$NON-NLS-1$
 +                      return 2;
 +              } else if (apiName.contains("3")) {//$NON-NLS-1$
 +                      return 3;
 +              } else if (apiName.contains("4")) {//$NON-NLS-1$
 +                      return 4;
 +              } else {
++                      Logger.error("undefine uniform api : " + apiName);
 +                      return 1;
 +              }
 +      }
 +}
@@@ -35,9 -36,9 +35,9 @@@ import org.tizen.dynamicanalyzer.databa
  import org.tizen.dynamicanalyzer.database.DBTable;
  import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
  import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLContextNameEnum;
- import org.tizen.dynamicanalyzer.util.DALogger;
+ import org.tizen.dynamicanalyzer.util.Logger;
  
 -public class GLStateDBTableManager extends DBTable {
 +public class GLCommonStateDBTableManager extends DBTable {
        private static final String TABLENAME = "GL_CONTEXT";//$NON-NLS-1$
        private String[] columnName = null;
        private int rid = 0;
  
                        if (isIntegerType(i)) {
                                types[i] = DBConstants.INTEGER;
 +                      } else if (isLongType(i)) {
 +                              types[i] = DBConstants.LONG;
                        } else if (isBooleans(i)) {
                                types[i] = DBConstants.BOOLEAN;
 -                      } else if (i == GLContextNameEnum.VIEWPORT.ordinal()
 -                                      || i == GLContextNameEnum.BLEND_COLOR.ordinal()
 -                                      || i == GLContextNameEnum.SCISSOR.ordinal()) {
 -                              types[i] = "VARCHAR(24)";
 +                      } else if (isStringType(i)) {
 +                              types[i] = "VARCHAR(24)";//$NON-NLS-1$
                        } else if (i == GLContextNameEnum.GVA_ENABLED.ordinal()) {
 -                              types[i] = "VARCHAR(144)";
 -                      } else if (i == GLContextNameEnum.GVA_SIZE.ordinal()
 -                                      || i == GLContextNameEnum.GVA_NORMAL.ordinal()
 -                                      || i == GLContextNameEnum.GVA_STRIDE.ordinal()) {
 -                              types[i] = "VARCHAR(64)";
 -                      } else if (i == GLContextNameEnum.GVA_TYPE.ordinal()) {
 -                              types[i] = "VARCHAR(192)";
 -                      } else if (i == GLContextNameEnum.GVA_POINTER.ordinal()) {
 -                              types[i] = "VARCHAR(176)";
 -                      } else if (i == GLContextNameEnum.GVA_V0.ordinal()
 -                                      || i == GLContextNameEnum.GVA_V1.ordinal()
 -                                      || i == GLContextNameEnum.GVA_V2.ordinal()
 -                                      || i == GLContextNameEnum.GVA_V3.ordinal()) {
 -                              types[i] = "VARCHAR(248)";
 -                      } else if (i == GLContextNameEnum.VBO_BINDING.ordinal()) {
 -                              types[i] = "VARCHAR(192)";
 -                      } else if (i == GLContextNameEnum.VBO_SIZE.ordinal()
 -                                      || i == GLContextNameEnum.VBO_Data.ordinal()
 -                                      || i == GLContextNameEnum.VBO_ID.ordinal()
 -                                      || i == GLContextNameEnum.VBO_USAGE.ordinal()) {
 -                              types[i] = "VARCHAR(64)";
 -                      } else if (i == GLContextNameEnum.FRAME_BUFFER_BINDING.ordinal()) {
 -                              types[i] = "VARCHAR(32)";
 +                              types[i] = DBConstants.BOOLEAN_ARRAY;
 +                      } else if (isIntegerArray(i)) {
 +                              types[i] = DBConstants.INTEGER_ARRAY;
 +                      } else if (isLongArray(i)) {
 +                              types[i] = DBConstants.BIGINT_ARRAY;
                        } else {
-                               DALogger.getInstance().error("undefine column : " + i);
+                               Logger.error("undefine column : " + i);
                        }
                }
                for (int i = 0; i < length; i++) {
                if (columnsize != rowData.size()) {
                        isPrepared = false;
                } else {
 -                      for (int i = 0; i < columnsize; i++) {
 -
 +                      for (int index = 0; index < columnsize; index++) {
                                try {
 -                                      if (isIntegerType(i)) {
 -                                              prep.setInt(i + 1, (Integer) (rowData.get(i)));
 -                                      } else if (isBooleans(i)) {
 -                                              boolean booleanResutl = (Boolean) (rowData.get(i));
 -                                              if (booleanResutl) {
 -                                                      prep.setBoolean(i + 1, true);
 -                                              } else {
 -                                                      prep.setBoolean(i + 1, false);
 -                                              }
 -
 +                                      if (isBooleanArray(index)) {
 +                                              SqlConnectionManager.setArrayToPreparedStatement(index,
 +                                                              DBConstants.BOOLEAN, prep, rowData);
 +                                      } else if (isIntegerArray(index)) {
 +                                              SqlConnectionManager.setArrayToPreparedStatement(index,
 +                                                              DBConstants.INTEGER, prep, rowData);
 +                                      } else if (isLongArray(index)) {
 +                                              SqlConnectionManager.setArrayToPreparedStatement(index, DBConstants.LONG,
 +                                                              prep, rowData);
 +                                      } else if (isIntegerType(index)) {
 +                                              prep.setInt(index + 1, (Integer) (rowData.get(index)));
 +                                      } else if (isLongType(index)) {
 +                                              prep.setLong(index + 1, (Long) (rowData.get(index)));
 +                                      } else if (isBooleans(index)) {
 +                                              prep.setBoolean(index + 1, (Boolean) (rowData.get(index)));
 +                                      } else if (isStringType(index)) {
 +                                              prep.setString(index + 1, (String) (rowData.get(index)));
                                        } else {
-                                               DALogger.getInstance().error("undefine column : " + index);
 -                                              prep.setString(i + 1, (String) (rowData.get(i)));
++                                              Logger.error("undefine column : " + index);
                                        }
                                } catch (SQLException e) {
                                        e.printStackTrace();
index 4f89004,0000000..64e26bc
mode 100644,000000..100644
--- /dev/null
@@@ -1,677 -1,0 +1,676 @@@
- import org.tizen.dynamicanalyzer.util.DALogger;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact:
 + * Hyunjong Park <phjwithyou.park@samsung.com> 
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl.data;
 +
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
 +import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLConstantDefine;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLContextNameEnum;
-       private static final DALogger DA_LOG = DALogger.getInstance();
++import org.tizen.dynamicanalyzer.util.Logger;
 +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 +
 +public class GLCommonStateDataMaker {
-                       DA_LOG.error("GL context init API - size of the parameter of the context log column is not 2");
 +      private GLStateDataManager glStateDataManager = null;
 +
 +      public GLCommonStateDataMaker(GLStateDataManager glStateDataManager) {
 +              this.glStateDataManager = glStateDataManager;
 +      }
 +
 +      private GLStateDataManager getStateDataManager() {
 +              return this.glStateDataManager;
 +      }
 +
 +      public void extractGLCommonAPIParameter(GLES20LogData logData) {
 +              int apiType = logData.getApiType();
 +              String apiName = logData.getApiName();
 +              if (apiType == GLStateDataManager.API_TYPE_INIT) {
 +                      initContextValue(logData);
 +              } else if (glStateDataManager.isNormalAPIStatusForExtractParameter(logData)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.CONTEXT_ID.ordinal(), logData.getCurrentContextID());
 +                      if (apiName.equals(GLAPINameDefine.API_GL_BLEND_COLOR)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BLEND_EQ)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BLEND_EQ_SEP)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BLEND_FUNC)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BLEND_FUNC_SEP)) {
 +                              extractBlendGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_BUFFER_GEN)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BUFFER_DEL)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BUFFER_BIND)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_BUFFER_DATA)) {
 +                              extractVBOGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_CULLFACE)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_FRONTFACE)) {
 +                              extractCullingGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_DEPTH_FUNC)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_DEPTH_RANGEF)) {
 +                              extractDepthGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_ENABLE)) {
 +                              extractEnableGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_DISABLE_VAA)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_ENABLE_VAA)) {
 +                              extractGVAGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_LINEWIDTH)) {
 +                              extractLineGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_PIXEL_STOREI)) {
 +                              extractPackAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_POLY_OFFSET)) {
 +                              extractPolyGLAPIPrameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_SCISSOR)) {
 +                              extractSissorGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_STENCIL_FUNC)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_STENCIL_FUNC_SEP)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_STENCIL_OP)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_STENCIL_OP_SEP)) {
 +                              extractStencilGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB1F)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB2F)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB3F)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB4F)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB1FV)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB2FV)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB3FV)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB4FV)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB_POINTER)) {
 +                              extractVertexGLAPIParameter(logData);
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_VIEWPORT)) {
 +                              extractViewPortGLAPIParameter(logData);
 +                      }
 +              }
 +      }
 +
 +      private void initContextValue(GLES20LogData logData) {
 +              String contextValue = logData.getContextValue().trim();
 +              GLContextDataManager currentContextValue = getStateDataManager().getGLContextDataManager(
 +                              logData.getCurrentContextID());
 +              if (logData.getApiType() != GLStateDataManager.API_TYPE_INIT) {
 +                      return;
 +              }
 +              if (!contextValue.contains(CommonConstants.COMMA)) {
 +                      return;
 +              }
 +              String contextValues[] = contextValue.split(CommonConstants.COMMA);
 +              if (contextValues.length != 2) {
-                       DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_LINEWIDTH);
++                      Logger.error("GL context init API - size of the parameter of the context log column is not 2");
 +                      return;
 +              }
 +              currentContextValue.setTextureUnits(Integer.parseInt(contextValues[0].trim()));
 +              currentContextValue.setVertexAttribs(Integer.parseInt(contextValues[1].trim()));
 +      }
 +
 +      private void extractLineGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_LINEWIDTH)) {
 +                      return;
 +              }
 +              if (parameters.length != 1) {
-                       DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_PIXEL_STOREI);
++                      Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_LINEWIDTH);
 +                      return;
 +              }
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.LINE_WIDTH.ordinal(),
 +                              Integer.parseInt(parameters[0]));
 +      }
 +
 +      private void extractPackAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_PIXEL_STOREI)) {
 +                      return;
 +              }
 +
 +              if (parameters.length != 2) {
-                       DA_LOG.error("GL extract API parameter undefine : " + logData.getApiName());
++                      Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_PIXEL_STOREI);
 +                      return;
 +              }
 +
 +              if (parameters[0].equals(Long.toString(AnalyzerUtil
 +                              .addrToLong(GLAPINameDefine.GL_PACK_ALIGNMENT)))) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.PACK_ALIGN.ordinal(), Integer.parseInt(parameters[1]));
 +              } else if (parameters[0].equals(Long.toString(AnalyzerUtil
 +                              .addrToLong(GLAPINameDefine.GL_UNPACK_ALIGNMENT)))) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.UNPACK_ALIGN.ordinal(), Integer.parseInt(parameters[1]));
 +              } else {
-                       DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_SCISSOR);
++                      Logger.error("GL extract API parameter undefine : " + logData.getApiName());
 +              }
 +      }
 +
 +      private void extractGVAGLAPIParameter(GLES20LogData logData) {
 +              GLContextDataManager currentContextValue = getStateDataManager().getGLContextDataManager(
 +                              logData.getCurrentContextID());
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_DISABLE_VAA)) {
 +                      currentContextValue.gvaEnabledValueList.set(Integer.parseInt(logData.getArgs()), false);
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.GVA_ENABLED.ordinal(),
 +                                      currentContextValue.gvaEnabledValueList);
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_ENABLE_VAA)) {
 +                      currentContextValue.gvaEnabledValueList.set(Integer.parseInt(logData.getArgs()), true);
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.GVA_ENABLED.ordinal(),
 +                                      currentContextValue.gvaEnabledValueList);
 +              }
 +      }
 +
 +      private void extractEnableGLAPIParameter(GLES20LogData logData) {
 +              String parameter = logData.getArgs().trim();
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_ENABLE)) {
 +                      return;
 +              }
 +              if (parameter.equals(GLAPINameDefine.GL_BLEND)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_CULL_FACE)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.CULLING_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_DEPTH_TEST)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.DEPTH_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_DITHER)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.DITHER_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_POLYGON_OFFSET_FILL)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.POLY_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_SCISSOR_TEST)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.SCISSOR_ENABLED.ordinal(), true);
 +              } else if (parameter.equals(GLAPINameDefine.GL_STENCIL_TEST)) {
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_ENABLED.ordinal(), true);
 +              }
 +      }
 +
 +      private void extractPolyGLAPIPrameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_POLY_OFFSET)) {
 +
 +              }
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.POLY_FACTOR.ordinal(),
 +                              Integer.parseInt(parameters[0]));
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.POLY_UNITS.ordinal(),
 +                              Integer.parseInt(parameters[1]));
 +      }
 +
 +      private void extractSissorGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_SCISSOR)) {
 +                      return;
 +              }
 +              if (parameters.length != 4) {
-                       DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_VIEWPORT);
++                      Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_SCISSOR);
 +                      return;
 +              }
 +
 +              StringBuffer scissor = new StringBuffer();
 +              scissor.append(parameters[0]).append(CommonConstants.COMMA).append(parameters[1])
 +                              .append(CommonConstants.COMMA).append(parameters[2]).append(CommonConstants.COMMA)
 +                              .append(parameters[3]);
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.SCISSOR.ordinal(),
 +                              scissor.toString());
 +      }
 +
 +      private void extractViewPortGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (!logData.getApiName().equals(GLAPINameDefine.API_GL_VIEWPORT)) {
 +                      return;
 +              }
 +              if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + logData.getApiName());
++                      Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_VIEWPORT);
 +                      return;
 +              }
 +
 +              StringBuffer viewPort = new StringBuffer();
 +              viewPort.append(parameters[0].trim()).append(CommonConstants.COMMA)
 +                              .append(parameters[1].trim()).append(CommonConstants.COMMA)
 +                              .append(parameters[2].trim()).append(CommonConstants.COMMA)
 +                              .append(parameters[3].trim());
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.VIEWPORT.ordinal(),
 +                              viewPort.toString());
 +      }
 +
 +      private void extractDepthGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_DEPTH_FUNC)) {
 +                      if (parameters.length != 2) {
-                               DA_LOG.error("GL extract API parameter  : " + logData.getApiName());
++                              Logger.error("GL extract API parameter  : " + logData.getApiName());
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.DEPTH_FUNC.ordinal(), Integer.parseInt(parameters[0]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_DEPTH_RANGEF)) {
 +                      if (parameters.length != 2) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_CULLFACE);
++                              Logger.error("GL extract API parameter  : " + logData.getApiName());
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.DEPTH_RANGE_N.ordinal(), Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.DEPTH_RANGE_F.ordinal(), Integer.parseInt(parameters[1]));
 +              }
 +      }
 +
 +      private void extractCullingGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_CULLFACE)) {
 +                      if (parameters.length != 1) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_FRONTFACE);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_CULLFACE);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.CULLING_MODE.ordinal(), Integer.parseInt(parameters[0]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_FRONTFACE)) {
 +                      if (parameters.length != 1) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BUFFER_BIND);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_FRONTFACE);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.CULLING_ORIENTATION.ordinal(),
 +                                      Integer.parseInt(parameters[0]));
 +              }
 +
 +      }
 +
 +      private void extractVBOGLAPIParameter(GLES20LogData logData) {
 +              long contextId = logData.getCurrentContextID();
 +              GLContextDataManager currentContextValue = getStateDataManager().getGLContextDataManager(
 +                              contextId);
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_BUFFER_DEL)) {
 +                      if (Integer.parseInt(parameters[0]) == currentContextValue.vboArrayBinding) {
 +                              currentContextValue.vboArrayBinding = 0;
 +                              currentContextValue.vboArrayID = 0;
 +                              currentContextValue.vboArraySize = 0;
 +                              currentContextValue.vboArrayData = 0;
 +                              currentContextValue.vboArrayUsage = 0;
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_BINDING.ordinal(),
 +                                              currentContextValue.vboArrayBinding);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_ID.ordinal(), currentContextValue.vboArrayID);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_SIZE.ordinal(),
 +                                              currentContextValue.vboArraySize);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_DATA.ordinal(),
 +                                              currentContextValue.vboArrayData);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_USAGE.ordinal(),
 +                                              currentContextValue.vboArrayUsage);
 +                      } else {
 +                              currentContextValue.vboElementBinding = 0;
 +                              currentContextValue.vboElementID = 0;
 +                              currentContextValue.vboElementSize = 0;
 +                              currentContextValue.vboElementData = 0;
 +                              currentContextValue.vboElementUsage = 0;
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_BINDING.ordinal(),
 +                                              currentContextValue.vboElementBinding);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_ID.ordinal(),
 +                                              currentContextValue.vboElementID);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_SIZE.ordinal(),
 +                                              currentContextValue.vboElementSize);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_DATA.ordinal(),
 +                                              currentContextValue.vboElementData);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_USAGE.ordinal(),
 +                                              currentContextValue.vboElementUsage);
 +                      }
 +
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BUFFER_BIND)) {
 +                      if (parameters.length != 2) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BUFFER_DATA);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BUFFER_BIND);
 +                              return;
 +                      }
 +                      if (Integer.parseInt(parameters[1]) == 0) {
 +                              return;
 +                      }
 +
 +                      if (GLConstantDefine.getConstantString(Integer.parseInt(parameters[0])).equals(
 +                                      "GL_ARRAY_BUFFER")) {
 +                              currentContextValue.vboArrayBinding = Integer.parseInt(parameters[1]);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_BINDING.ordinal(),
 +                                              currentContextValue.vboArrayBinding);
 +                      } else {
 +                              currentContextValue.vboElementBinding = Integer.parseInt(parameters[1]);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_BINDING.ordinal(),
 +                                              currentContextValue.vboElementBinding);
 +                      }
 +
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BUFFER_DATA)) {
 +                      if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_COLOR);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BUFFER_DATA);
 +                              return;
 +                      }
 +                      if (GLConstantDefine.getConstantString(Integer.parseInt(parameters[0])).equals(
 +                                      "GL_ARRAY_BUFFER")) {
 +                              currentContextValue.vboArraySize = Integer.parseInt(parameters[1]);
 +                              currentContextValue.vboArrayData = AnalyzerUtil.addrToLong(parameters[2]);
 +                              currentContextValue.vboArrayUsage = Integer.parseInt(parameters[3]);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_SIZE.ordinal(),
 +                                              currentContextValue.vboArraySize);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_DATA.ordinal(),
 +                                              currentContextValue.vboArrayData);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ARRAY_USAGE.ordinal(),
 +                                              currentContextValue.vboArrayUsage);
 +                      } else {
 +                              currentContextValue.vboElementSize = Integer.parseInt(parameters[1]);
 +                              currentContextValue.vboElementData = AnalyzerUtil.addrToLong(parameters[2]);
 +                              currentContextValue.vboElementUsage = Integer.parseInt(parameters[3]);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_SIZE.ordinal(),
 +                                              currentContextValue.vboElementSize);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_DATA.ordinal(),
 +                                              currentContextValue.vboElementData);
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.VBO_ELEMENT_USAGE.ordinal(),
 +                                              currentContextValue.vboElementUsage);
 +                      }
 +              }
 +      }
 +
 +      private void extractBlendGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_BLEND_COLOR)) {
 +                      if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_EQ);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_COLOR);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_COLOR.ordinal(),
 +                                      parameters[0] + CommonConstants.COMMA + parameters[1] + CommonConstants.COMMA
 +                                                      + parameters[2] + CommonConstants.COMMA + parameters[3]);
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BLEND_EQ)) {
 +                      if (parameters.length != 1) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_EQ_SEP);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_EQ);
 +                              return;
 +                      }
 +                      getStateDataManager()
 +                                      .updateStateAtCurrentContext(GLContextNameEnum.BLEND_EQUATION_RGB.ordinal(),
 +                                                      Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_EQUATION_ALPHA.ordinal(),
 +                                      Integer.parseInt(parameters[0]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BLEND_EQ_SEP)) {
 +                      if (parameters.length != 2) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_FUNC);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_EQ_SEP);
 +                              return;
 +                      }
 +                      getStateDataManager()
 +                                      .updateStateAtCurrentContext(GLContextNameEnum.BLEND_EQUATION_RGB.ordinal(),
 +                                                      Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_EQUATION_ALPHA.ordinal(),
 +                                      Integer.parseInt(parameters[1]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BLEND_FUNC)) {
 +                      if (parameters.length != 2) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_FUNC_SEP);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_FUNC);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_SRC_RGB.ordinal(), Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_SRC_ALPHA.ordinal(), Integer.parseInt(parameters[1]));
 +
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_DEST_RGB.ordinal(), Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_DEST_ALPHA.ordinal(), Integer.parseInt(parameters[1]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_BLEND_FUNC_SEP)) {
 +                      if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_STENCIL_FUNC);
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_BLEND_FUNC_SEP);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_SRC_RGB.ordinal(), Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_DEST_RGB.ordinal(), Integer.parseInt(parameters[1]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_SRC_ALPHA.ordinal(), Integer.parseInt(parameters[2]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.BLEND_DEST_ALPHA.ordinal(), Integer.parseInt(parameters[3]));
 +              }
 +
 +      }
 +
 +      private void extractStencilGLAPIParameter(GLES20LogData logData) {
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_STENCIL_FUNC)) {
 +                      if (parameters.length != 3) {
-                               DA_LOG.error("GL extract API parameter  : "
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_STENCIL_FUNC);
 +                              return;
 +                      }
 +                      getStateDataManager()
 +                                      .updateStateAtCurrentContext(GLContextNameEnum.STENCIL_FRONT_FUNC.ordinal(),
 +                                                      Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_FRONT_REF.ordinal(), Integer.parseInt(parameters[1]));
 +                      getStateDataManager()
 +                                      .updateStateAtCurrentContext(GLContextNameEnum.STENCIL_FRONT_MASK.ordinal(),
 +                                                      Integer.parseInt(parameters[2]));
 +
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_FUNC.ordinal(), Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_REF.ordinal(), Integer.parseInt(parameters[1]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_MASK.ordinal(), Integer.parseInt(parameters[2]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_STENCIL_FUNC_SEP)) {
 +                      if (parameters.length != 3) {
-                               DA_LOG.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_STENCIL_OP);
++                              Logger.error("GL extract API parameter  : "
 +                                              + GLAPINameDefine.API_GL_STENCIL_FUNC_SEP);
 +                              return;
 +                      }
 +                      if (parameters[0].equals(GLAPINameDefine.GL_FRONT)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_FUNC.ordinal(),
 +                                              Integer.parseInt(parameters[0]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_REF.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_MASK.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                      } else if (parameters[0].equals(GLAPINameDefine.GL_BACK)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_FUNC.ordinal(),
 +                                              Integer.parseInt(parameters[0]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_REF.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_MASK.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                      } else if (parameters[0].equals(GLAPINameDefine.GL_FRONT_AND_BACK)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_FUNC.ordinal(),
 +                                              Integer.parseInt(parameters[0]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_REF.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_MASK.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_FUNC.ordinal(),
 +                                              Integer.parseInt(parameters[0]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_REF.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_MASK.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                      }
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_STENCIL_OP)) {
 +                      if (parameters.length != 3) {
-                               DA_LOG.error("GL extract API parameter  : " + logData.getApiName());
++                              Logger.error("GL extract API parameter  : " + GLAPINameDefine.API_GL_STENCIL_OP);
 +                              return;
 +                      }
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_FRONT_S_FAIL.ordinal(),
 +                                      Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_FRONT_D_FAIL.ordinal(),
 +                                      Integer.parseInt(parameters[1]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_FRONT_D_PASS.ordinal(),
 +                                      Integer.parseInt(parameters[2]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_S_FAIL.ordinal(),
 +                                      Integer.parseInt(parameters[0]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_D_FAIL.ordinal(),
 +                                      Integer.parseInt(parameters[1]));
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.STENCIL_BACK_D_PASS.ordinal(),
 +                                      Integer.parseInt(parameters[2]));
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_STENCIL_OP_SEP)) {
 +                      if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + logData.getApiName());
++                              Logger.error("GL extract API parameter  : " + logData.getApiName());
 +                              return;
 +                      }
 +                      if (parameters[0].equals(GLAPINameDefine.GL_FRONT)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_S_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_D_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_D_PASS.ordinal(),
 +                                              Integer.parseInt(parameters[3]));
 +                      } else if (parameters[0].equals(GLAPINameDefine.GL_BACK)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_S_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_D_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_D_PASS.ordinal(),
 +                                              Integer.parseInt(parameters[3]));
 +                      } else if (parameters[0].equals(GLAPINameDefine.GL_FRONT_AND_BACK)) {
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_S_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_D_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_FRONT_D_PASS.ordinal(),
 +                                              Integer.parseInt(parameters[3]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_S_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[1]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_D_FAIL.ordinal(),
 +                                              Integer.parseInt(parameters[2]));
 +                              getStateDataManager().updateStateAtCurrentContext(
 +                                              GLContextNameEnum.STENCIL_BACK_D_PASS.ordinal(),
 +                                              Integer.parseInt(parameters[3]));
 +                      }
 +              }
 +      }
 +
 +      private void extractVertexGLAPIParameter(GLES20LogData logData) {
 +              GLContextDataManager currentContextValue = getStateDataManager().getGLContextDataManager(
 +                              logData.getCurrentContextID());
 +              String parameters[] = logData.getArgs()
 +                              .split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              String contextValues[] = logData.getContextValue().trim().split(CommonConstants.COMMA);
 +
 +              if (logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB1F)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB2F)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB3F)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB4F)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB1FV)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB2FV)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB3FV)
 +                              || logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB4FV)) {
 +                      if (parameters.length != 4) {
-                               DA_LOG.error("GL extract API parameter  : " + logData.getApiName());
++                              Logger.error("GL extract API parameter  : " + logData.getApiName());
 +                              return;
 +                      }
 +                      int gvaIndex = Integer.parseInt(parameters[0]);
 +                      currentContextValue.gvaV0ValueList.set(gvaIndex, Integer.parseInt(contextValues[0]));
 +                      currentContextValue.gvaV1ValueList.set(gvaIndex, Integer.parseInt(contextValues[1]));
 +                      currentContextValue.gvaV2ValueList.set(gvaIndex, Integer.parseInt(contextValues[2]));
 +                      currentContextValue.gvaV3ValueList.set(gvaIndex, Integer.parseInt(contextValues[3]));
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_V0.ordinal(),
 +                                      currentContextValue.gvaV0ValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_V1.ordinal(),
 +                                      currentContextValue.gvaV1ValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_V2.ordinal(),
 +                                      currentContextValue.gvaV2ValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_V3.ordinal(),
 +                                      currentContextValue.gvaV3ValueList);
 +              } else if (logData.getApiName().equals(GLAPINameDefine.API_GL_VERTEX_ATTRIB_POINTER)) {
 +                      if (parameters.length != 6) {
++                              Logger.error("GL extract API parameter  : " + logData.getApiName());
 +                              return;
 +                      }
 +                      int gvaIndex = Integer.parseInt(parameters[0]);
 +                      currentContextValue.gvaSizeValueList.set(gvaIndex, Integer.parseInt(parameters[1]));
 +                      currentContextValue.gvaTypeValueList.set(gvaIndex, Integer.parseInt(parameters[2]));
 +                      currentContextValue.gvaNormalValueList.set(gvaIndex, Integer.parseInt(parameters[3]));
 +                      currentContextValue.gvaStrideValueList.set(gvaIndex, Integer.parseInt(parameters[4]));
 +                      currentContextValue.gvaPointerValueList.set(gvaIndex,
 +                                      AnalyzerUtil.addrToLong(parameters[5]));
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_SIZE.ordinal(),
 +                                      currentContextValue.gvaSizeValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.GVA_TYPE.ordinal(),
 +                                      currentContextValue.gvaTypeValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.GVA_NORMAL.ordinal(), currentContextValue.gvaNormalValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.GVA_STRIDE.ordinal(), currentContextValue.gvaStrideValueList);
 +                      getStateDataManager().updateStateAtCurrentContext(
 +                                      GLContextNameEnum.GVA_POINTER.ordinal(),
 +                                      currentContextValue.gvaPointerValueList);
 +              }
 +      }
 +
 +}
index 15b3e73,0000000..208b4d3
mode 100644,000000..100644
--- /dev/null
@@@ -1,158 -1,0 +1,157 @@@
- import org.tizen.dynamicanalyzer.util.DALogger;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact:
 + * Hyunjong Park <phjwithyou.park@samsung.com> 
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl.data;
 +
 +import java.util.ArrayList;
 +import java.util.Iterator;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.Map.Entry;
 +import java.util.Set;
 +
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
 +import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLContextNameEnum;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSharingContextType;
-       private static final DALogger DA_LOG = DALogger.getInstance();
++import org.tizen.dynamicanalyzer.util.Logger;
 +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
 +
 +public class GLContextSharingDataMaker {
-                       DA_LOG.error("GL extract sharing context API parameter  : " + apiName);
 +      private GLStateDataManager glStateDataManager = null;
 +
 +      public GLContextSharingDataMaker(GLStateDataManager glStateDataManager) {
 +              this.glStateDataManager = glStateDataManager;
 +      }
 +
 +      private GLStateDataManager getStateDataManager() {
 +              return this.glStateDataManager;
 +      }
 +
 +      public void extractSharingContextAPIParameter(GLES20LogData logData) {
 +              String apiName = logData.getApiName();
 +              if (!apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)
 +                              && !apiName.equals(GLAPINameDefine.API_EVAS_GL_CREATE_CONTEXT)) {
 +                      return;
 +              }
 +              if (glStateDataManager.isNormalAPIStatusForExtractParameter(logData)) {
 +                      eglAPILogManager(logData);
 +              }
 +      }
 +
 +      private void eglAPILogManager(GLES20LogData logData) {
 +              String apiName = logData.getApiName();
 +              if (apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)) {
 +                      insertContextOfEGL(logData);
 +              } else if (apiName.equals(GLAPINameDefine.API_EVAS_GL_CREATE_CONTEXT)) {
 +                      insertContextOfEvasGL(logData);
 +              } else {
-                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                      Logger.error("GL extract sharing context API parameter  : " + apiName);
 +              }
 +      }
 +
 +      private void insertContextOfEGL(GLES20LogData logData) {
 +              String apiName = logData.getApiName();
 +              String parameter = logData.getArgs();
 +              String parameters[] = parameter.split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              String returnValue = logData.getReturn();
 +              if (parameters.length != 4) {
-                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                      Logger.error("GL extract API parameter  : " + apiName);
 +                      return;
 +              }
 +              long currentContextId = AnalyzerUtil.addrToLong(parameters[2]);
 +              long sharingContextId = AnalyzerUtil.addrToLong(returnValue);
 +              if (!isExistSharingContextID(currentContextId)) {
 +                      return;
 +              }
 +              updateSharingDataAtCurrentContextDataManager(currentContextId, sharingContextId);
 +              insertSharingData();
 +      }
 +
 +      private void insertContextOfEvasGL(GLES20LogData logData) {
 +              String apiName = logData.getApiName();
 +              String parameter = logData.getArgs();
 +              String parameters[] = parameter.split(CommonConstants.COMMA + CommonConstants.SPACE);
 +              String returnValue = logData.getReturn();
 +              if (parameters.length != 2) {
-                       DA_LOG.error("GL context hash map not set data : " + sharingContextId);
++                      Logger.error("GL extract API parameter  : " + apiName);
 +                      return;
 +              }
 +              long currentContextId = AnalyzerUtil.addrToLong(returnValue);
 +              long sharingContextId = AnalyzerUtil.addrToLong(parameters[1]);
 +              if (!isExistSharingContextID(currentContextId)) {
 +                      return;
 +              }
 +              updateSharingDataAtCurrentContextDataManager(currentContextId, sharingContextId);
 +              insertSharingData();
 +      }
 +
 +      private boolean isExistSharingContextID(long currentContextId) {
 +              if (currentContextId != 0) {
 +                      return true;
 +              } else {
 +                      return false;
 +              }
 +      }
 +
 +      private void updateSharingDataAtCurrentContextDataManager(long currentContextId,
 +                      long sharingContextId) {
 +              getStateDataManager().updateStateAtCurrentContext(GLContextNameEnum.CONTEXT_ID.ordinal(),
 +                              sharingContextId);
 +              GLContextDataManager curretnContextValue = getStateDataManager().getGLContextDataManager(
 +                              sharingContextId);
 +              if (null == curretnContextValue) {
++                      Logger.error("GL context hash map not set data : " + sharingContextId);
 +                      return;
 +              }
 +              curretnContextValue.addSharingContextID(getStateDataManager().getStateHashMap(),
 +                              currentContextId);
 +      }
 +
 +      private void insertSharingData() {
 +              List<GLSharingContextType> insertSharingInfoList = new ArrayList<GLSharingContextType>();
 +              Set<Entry<Long, GLContextDataManager>> set = getStateDataManager().getStateHashMap()
 +                              .entrySet();
 +              Iterator<Entry<Long, GLContextDataManager>> itr = set.iterator();
 +              while (itr.hasNext()) {
 +                      Map.Entry<Long, GLContextDataManager> e = (Map.Entry<Long, GLContextDataManager>) itr
 +                                      .next();
 +                      insertSharingInfoList.addAll(getInsertSharingInfoList(e.getValue()));
 +              }
 +              GLDataManager.getInstance().getStateSharingDBTableManage()
 +                              .insertSharingData(insertSharingInfoList);
 +      }
 +
 +      private List<GLSharingContextType> getInsertSharingInfoList(GLContextDataManager contextValue) {
 +              List<GLSharingContextType> returnSharingInfoList = new ArrayList<GLSharingContextType>();
 +              for (int i = 0; i < contextValue.sharingContextIdList.size(); i++) {
 +                      returnSharingInfoList.add(new GLSharingContextType(contextValue.contextID,
 +                                      contextValue.sharingContextIdList.get(i)));
 +              }
 +              return returnSharingInfoList;
 +      }
 +}
index 8e70d10,0000000..f36a675
mode 100644,000000..100644
--- /dev/null
@@@ -1,194 -1,0 +1,194 @@@
- import org.tizen.dynamicanalyzer.common.AnalyzerManager;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact:
 + * Hyunjong Park <phjwithyou.park@samsung.com> 
 + * Sanghyun Lee <sanghyunnim.lee@samsung.com>
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl.data;
 +
 +import java.util.ArrayList;
 +import java.util.LinkedHashMap;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.concurrent.ConcurrentHashMap;
 +
- import org.tizen.dynamicanalyzer.util.DALogger;
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
++import org.tizen.dynamicanalyzer.project.FunctionNameManager;
 +import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLRedundantDataType;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStatisticsDataType;
-                       String hashKey = AnalyzerManager.getProject().getApiName(data.getApiID())
++import org.tizen.dynamicanalyzer.util.Logger;
 +
 +public class GLStatisticsDataManager {
 +      private static final String SPLIT = CommonConstants.SPACE + CommonConstants.CMD_SPLIT
 +                      + CommonConstants.SPACE;
 +      private static final String STATE_CHANGE = "State Change";//$NON-NLS-1$
 +      private static final String MATRIX = "Matrix";//$NON-NLS-1$
 +      private static final String TEXTURE = "Texture";//$NON-NLS-1$
 +      private static final String DRAW = "Draw";//$NON-NLS-1$
 +      private static final String PROGRAM_AND_SHADER = "Program and Shader";//$NON-NLS-1$
 +      private static final String BUFFER = "Buffer";//$NON-NLS-1$
 +      private static final String GET = "Get";//$NON-NLS-1$
 +      private static final String IS = "Is";//$NON-NLS-1$
 +      private static final String DELETE = "Delete";//$NON-NLS-1$
 +      private static final String BIND = "Bind";//$NON-NLS-1$
 +      private static final String EVAS_GL = "evas_gl";//$NON-NLS-1$
 +      private ConcurrentHashMap<String, GLRedundantDataType> redundantHsahMap = new ConcurrentHashMap<String, GLRedundantDataType>();
 +      private double totalAPICount = 0;
 +
 +      public void addAPI(GLES20LogData logData) {
 +              String hashKey = logData.getApiName() + logData.getArgs();
 +              GLRedundantDataType savedHash = redundantHsahMap.get(hashKey);
 +              if (null == savedHash) {
 +                      redundantHsahMap.put(
 +                                      hashKey,
 +                                      new GLRedundantDataType(logData.getApiId(), logData.getArgs(), 1, logData
 +                                                      .getElapsedTime()));
 +              } else {
 +                      savedHash.addCallCount();
 +                      savedHash.addElapsedTime(logData.getElapsedTime());
 +              }
 +              totalAPICount++;
 +      }
 +
 +      public void insertRedundantData() {
 +              GLDataManager.getInstance().getRedundantDBTable()
 +                              .insertRedundantData(getRedundantTableData());
 +      }
 +
 +      public void selectRedundantData() {
 +              List<GLRedundantDataType> redundantList = GLDataManager.getInstance().getRedundantDBTable()
 +                              .select();
 +              for (GLRedundantDataType data : redundantList) {
-                       DALogger.getInstance().error("Not Define API Type of Statistics  : " + apiName);
++                      String hashKey = FunctionNameManager.getFunctionName(data.getApiID())
 +                                      + data.getArgs();
 +                      GLRedundantDataType savedHash = redundantHsahMap.get(hashKey);
 +                      if (null == savedHash) {
 +                              redundantHsahMap.put(
 +                                              hashKey,
 +                                              new GLRedundantDataType(data.getApiID(), data.getArgs(), data
 +                                                              .getCallCount(), data.getElapsedTime()));
 +                      } else {
 +                              savedHash.setCallCount(savedHash.getCallCount() + data.getCallCount());
 +                      }
 +                      totalAPICount += data.getCallCount();
 +              }
 +      }
 +
 +      public List<GLRedundantDataType> getRedundantTableData() {
 +              List<GLRedundantDataType> returnList = new ArrayList<GLRedundantDataType>();
 +              for (Map.Entry<String, GLRedundantDataType> entry : redundantHsahMap.entrySet()) {
 +                      returnList.add(entry.getValue());
 +              }
 +              return returnList;
 +      }
 +
 +      public List<GLStatisticsDataType> getStatisticsTableData() {
 +              List<GLStatisticsDataType> returnList = new ArrayList<GLStatisticsDataType>();
 +              LinkedHashMap<String, GLStatisticsDataType> statisticsHashMap = getStatisticDataFromRedundantHashMap();
 +              for (Map.Entry<String, GLStatisticsDataType> entry : statisticsHashMap.entrySet()) {
 +                      returnList.add(entry.getValue());
 +              }
 +              return returnList;
 +      }
 +
 +      private LinkedHashMap<String, GLStatisticsDataType> getStatisticDataFromRedundantHashMap() {
 +              LinkedHashMap<String, GLStatisticsDataType> returnStatisticsHsahMap = new LinkedHashMap<String, GLStatisticsDataType>();
 +              for (Map.Entry<String, GLRedundantDataType> entry : redundantHsahMap.entrySet()) {
 +                      GLRedundantDataType redundantDataType = entry.getValue();
 +                      String hashKey = redundantDataType.getAPIName();
 +                      GLStatisticsDataType savedHash = returnStatisticsHsahMap.get(hashKey);
 +                      if (null == savedHash) {
 +                              returnStatisticsHsahMap.put(
 +                                              hashKey,
 +                                              new GLStatisticsDataType(redundantDataType.getApiID(), redundantDataType
 +                                                              .getArgs(), getRate(redundantDataType.getCallCount()),
 +                                                              redundantDataType.getCallCount(), redundantDataType
 +                                                                              .getElapsedTime(), getAPIType(redundantDataType
 +                                                                              .getAPIName())));
 +                      } else {
 +                              savedHash.addCallCount(redundantDataType.getCallCount());
 +                              savedHash.setRate(getRate(savedHash.getCallCount()));
 +                              savedHash.addElapsedTime(redundantDataType.getElapsedTime());
 +                      }
 +              }
 +              return returnStatisticsHsahMap;
 +      }
 +
 +      private double getRate(double callCount) {
 +              return callCount / totalAPICount * 100;
 +      }
 +
 +      private String getAPIType(String apiName) {
 +              StringBuffer returnBuffer = new StringBuffer();
 +              if (apiName.contains(MATRIX)) {
 +                      returnBuffer.append(MATRIX).append(SPLIT);
 +              }
 +              if (apiName.contains(TEXTURE) || apiName.contains("Tex")) {//$NON-NLS-1$
 +                      returnBuffer.append(TEXTURE).append(SPLIT);
 +              }
 +              if (apiName.contains(BUFFER)) {
 +                      returnBuffer.append(BUFFER).append(SPLIT);
 +              }
 +              if (apiName.contains(GET) || apiName.contains("glHint")) {//$NON-NLS-1$
 +                      returnBuffer.append(GET).append(SPLIT);
 +              }
 +              if (apiName.contains(IS)) {
 +                      returnBuffer.append(IS).append(SPLIT);
 +              }
 +              if (apiName.contains(DRAW) || apiName.contains("glFinish") || apiName.contains("glFlush")) {//$NON-NLS-1$//$NON-NLS-2$
 +                      returnBuffer.append(DRAW).append(SPLIT);
 +              }
 +              if (apiName.contains(DELETE)) {
 +                      returnBuffer.append(DELETE).append(SPLIT);
 +              }
 +              if (apiName.contains("Bind") || apiName.contains("Gen")) {//$NON-NLS-1$//$NON-NLS-2$
 +                      returnBuffer.append(BIND).append(SPLIT);
 +              }
 +              if (apiName.contains("Program") || apiName.contains("Shader")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("Uniform") || apiName.contains("Vertex")) {//$NON-NLS-1$//$NON-NLS-2$
 +                      returnBuffer.append(PROGRAM_AND_SHADER).append(SPLIT);
 +              }
 +              if (apiName.contains("Blend") || apiName.contains("Clear") || apiName.contains("Color")//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
 +                              || apiName.contains("Cull") || apiName.contains("Depth")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("Disable") || apiName.contains("Enable")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("Stencil") || apiName.contains("glLineWidth")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("glPixelStorei") || apiName.contains("glPolygonOffset")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("glReadPixels") || apiName.contains("glSampleCoverage")//$NON-NLS-1$//$NON-NLS-2$
 +                              || apiName.contains("glScissor") || apiName.contains("glViewport")) {//$NON-NLS-1$//$NON-NLS-2$
 +                      returnBuffer.append(STATE_CHANGE).append(SPLIT);
 +              }
 +              if (apiName.contains(EVAS_GL)) {
 +                      returnBuffer.append(EVAS_GL);
 +              }
 +              if (returnBuffer.length() == 0) {
++                      Logger.error("Not Define API Type of Statistics  : " + apiName);
 +                      return CommonConstants.EMPTY;
 +              }
 +              if (returnBuffer.lastIndexOf(SPLIT) == returnBuffer.length() - SPLIT.length()) {
 +                      returnBuffer.delete(returnBuffer.length() - SPLIT.length(), returnBuffer.length());
 +              }
 +              return returnBuffer.toString();
 +      }
 +}
index 38e3e16,0000000..31017b6
mode 100644,000000..100644
--- /dev/null
@@@ -1,202 -1,0 +1,201 @@@
- import org.tizen.dynamicanalyzer.util.DALogger;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact:
 + * Hyunjong Park <phjwithyou.park@samsung.com> 
 + * Sanghyun Lee <sanghyunnim.lee@samsung.com>
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl.data;
 +
 +import java.util.ArrayList;
 +import java.util.List;
 +import java.util.Map;
 +
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
 +import org.tizen.dynamicanalyzer.swap.model.data.GLES20LogData;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLAPINameDefine;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLContextNameEnum;
 +import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLStateTextureType;
-       private static final DALogger DA_LOG = DALogger.getInstance();
++import org.tizen.dynamicanalyzer.util.Logger;
 +
 +public class GLTextureStateDataMaker {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
 +      private GLStateDataManager glStateDataManager = null;
 +
 +      public GLTextureStateDataMaker(GLStateDataManager glStateDataManager) {
 +              this.glStateDataManager = glStateDataManager;
 +      }
 +
 +      private GLStateDataManager getStateDataManager() {
 +              return this.glStateDataManager;
 +      }
 +
 +      public void extractGLTextureAPIParameter(GLES20LogData logData) {
 +              if (glStateDataManager.isNormalAPIStatusForExtractParameter(logData)) {
 +                      String apiName = logData.getApiName();
 +                      String parameter = logData.getArgs();
 +                      long contextId = logData.getCurrentContextID();
 +                      String parameters[] = parameter.split(CommonConstants.COMMA + CommonConstants.SPACE);
 +                      String contextValues[] = logData.getContextValue().trim().split(CommonConstants.COMMA);
 +                      GLContextDataManager curretnContextValue = getStateDataManager()
 +                                      .getGLContextDataManager(contextId);
 +
 +                      if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_ACTIVE)) {
 +                              if (parameters.length != 1) {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              getStateDataManager()
 +                                              .updateStateAtCurrentContext(GLContextNameEnum.TEXTURE_ACTIVE.ordinal(),
 +                                                              Integer.parseInt(parameters[0]));
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_GEN)) {
 +                              if (parameters.length != 2) {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              for (int i = 0; i < Integer.parseInt(parameters[0]); i++) {
 +                                      curretnContextValue.textureList.add(new GLStateTextureType(Integer
 +                                                      .parseInt(contextValues[i].trim()), contextId, logData.getSeq()));
 +                              }
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_BIND)) {
 +                              if (parameters.length != 2) {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
 +                                      if (isSameTextureType(curretnContextValue.textureList.get(i), parameters[1],
 +                                                      contextId)) {
 +                                              curretnContextValue.textureList.get(i).setType(
 +                                                              Integer.parseInt(parameters[0].trim()));
 +                                              break;
 +                                      }
 +                              }
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_DEL)) {
 +                              if (parameters.length != 2) {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              for (int i = 0; i < Integer.parseInt(parameters[0]); i++) {
 +                                      for (int j = 0; j < curretnContextValue.textureList.size(); j++) {
 +                                              if (isSameTextureType(curretnContextValue.textureList.get(j),
 +                                                              parameters[0], contextId)) {
 +                                                      curretnContextValue.textureList.get(j).setType(
 +                                                                      Integer.parseInt(parameters[0].trim()));
 +                                                      break;
 +                                              }
 +                                      }
 +                              }
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_F)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_I)) {
 +                              if (parameters.length != 3) {
-                                               DA_LOG.error("GL " + apiName + " undefine type : " + parameters[1]);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
 +                                      if (curretnContextValue.textureList.get(i).getContextID() != contextId) {
 +                                              continue;
 +                                      }
 +                                      if (curretnContextValue.textureList.get(i).getType() != Integer
 +                                                      .parseInt(parameters[0].trim())) {
 +                                              continue;
 +                                      }
 +                                      if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
 +                                              curretnContextValue.textureList.get(i).setMagFilter(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
 +                                              curretnContextValue.textureList.get(i).setMinFilter(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
 +                                              curretnContextValue.textureList.get(i).setWrapS(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
 +                                              curretnContextValue.textureList.get(i).setWrapT(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else {
-                                       DA_LOG.error("GL extract API parameter  : " + apiName);
++                                              Logger.error("GL " + apiName + " undefine type : " + parameters[1]);
 +                                      }
 +                              }
 +                      } else if (apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_FV)
 +                                      || apiName.equals(GLAPINameDefine.API_GL_TEXTURE_PARAM_IV)) {
 +                              if (parameters.length != 3) {
-                                               DA_LOG.error("GL " + apiName + " undefine type : " + parameters[1]);
++                                      Logger.error("GL extract API parameter  : " + apiName);
 +                                      return;
 +                              }
 +                              for (int i = 0; i < curretnContextValue.textureList.size(); i++) {
 +                                      if (curretnContextValue.textureList.get(i).getObjID() != Integer
 +                                                      .parseInt(parameters[0].trim())
 +                                                      || curretnContextValue.textureList.get(i).getContextID() != contextId) {
 +                                              continue;
 +                                      }
 +                                      if (curretnContextValue.textureList.get(i).getType() != Integer
 +                                                      .parseInt(parameters[0].trim())) {
 +                                              continue;
 +                                      }
 +                                      if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_MAG_FILTER)) {
 +                                              curretnContextValue.textureList.get(i).setMagFilter(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_MIN_FILTER)) {
 +                                              curretnContextValue.textureList.get(i).setMinFilter(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_WRAP_S)) {
 +                                              curretnContextValue.textureList.get(i).setWrapS(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else if (parameters[1].equals(GLAPINameDefine.GL_TEXTURE_WRAP_T)) {
 +                                              curretnContextValue.textureList.get(i).setWrapT(
 +                                                              Integer.parseInt(parameters[2]));
 +                                      } else {
++                                              Logger.error("GL " + apiName + " undefine type : " + parameters[1]);
 +                                      }
 +                              }
 +                      }
 +              }
 +      }
 +
 +      public void addTextureList(GLStateTextureType textureType) {
 +              GLContextDataManager contextValue = getStateDataManager().getGLContextDataManager(
 +                              textureType.getContextID());
 +              if (null == contextValue) {
 +                      contextValue = new GLContextDataManager(textureType.getContextID());
 +                      getStateDataManager().getStateHashMap().put(textureType.getContextID(), contextValue);
 +              }
 +              contextValue.textureList.add(textureType);
 +      }
 +
 +      public List<GLStateTextureType> getTextureList() {
 +              List<GLStateTextureType> returnProgramList = new ArrayList<GLStateTextureType>();
 +              for (Map.Entry<Long, GLContextDataManager> entry : getStateDataManager().getStateHashMap()
 +                              .entrySet()) {
 +                      returnProgramList.addAll(entry.getValue().textureList);
 +              }
 +              return returnProgramList;
 +      }
 +
 +      private boolean isSameTextureType(GLStateTextureType existingTexture,
 +                      String parameterTextureObjId, long contextId) {
 +              if (existingTexture.getObjID() == Integer.parseInt(parameterTextureObjId.trim())
 +                              && existingTexture.getContextID() == contextId) {
 +                      return true;
 +              } else {
 +                      return false;
 +              }
 +      }
 +}
index c020dd9,0000000..246ae4a
mode 100644,000000..100644
--- /dev/null
@@@ -1,92 -1,0 +1,92 @@@
- import org.tizen.dynamicanalyzer.common.AnalyzerManager;
 +/*
 + *  Dynamic Analyzer
 + *
 + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
 + *
 + * Contact: 
 + * Hyunjong Park <phjwithyou.park@samsung.com>
 + * Juyoung Kim <j0.kim@samsung.com>
 + *
 + * 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.
 + * 
 + * Contributors:
 + * - S-Core Co., Ltd
 + * 
 + */
 +
 +package org.tizen.dynamicanalyzer.ui.opengl.data.type;
 +
-               return AnalyzerManager.getProject().getApiName(apiID);
 +import org.tizen.dynamicanalyzer.constant.CommonConstants;
++import org.tizen.dynamicanalyzer.project.FunctionNameManager;
 +
 +public class GLRedundantDataType {
 +      private int apiID = -1;
 +      private String args = CommonConstants.EMPTY;
 +      private int callCount = -1;
 +      private long elapsedTime = 0;
 +
 +      public GLRedundantDataType(int apiID, String args, int callCount, long elapsedTime) {
 +              this.apiID = apiID;
 +              this.args = args;
 +              this.elapsedTime = elapsedTime;
 +              this.callCount = callCount;
 +      }
 +
 +      public int getApiID() {
 +              return apiID;
 +      }
 +
 +      public String getAPIName() {
++              return FunctionNameManager.getFunctionName(apiID);
 +      }
 +
 +      public void setApiID(int apiID) {
 +              this.apiID = apiID;
 +      }
 +
 +      public String getArgs() {
 +              return args;
 +      }
 +
 +      public void setArgs(String args) {
 +              this.args = args;
 +      }
 +
 +      public int getCallCount() {
 +              return callCount;
 +      }
 +
 +      public void addCallCount() {
 +              callCount++;
 +      }
 +
 +      public void addCallCount(int preCallCount) {
 +              callCount += preCallCount;
 +      }
 +
 +      public void setCallCount(int callCount) {
 +              this.callCount = callCount;
 +      }
 +
 +      public long getElapsedTime() {
 +              return elapsedTime;
 +      }
 +
 +      public void setElapsedTime(long elapsedTime) {
 +              this.elapsedTime = elapsedTime;
 +      }
 +
 +      public void addElapsedTime(long elapsedTime) {
 +              this.elapsedTime += elapsedTime;
 +      }
 +}
@@@ -59,7 -58,7 +59,7 @@@ import org.tizen.dynamicanalyzer.ui.ope
  import org.tizen.dynamicanalyzer.ui.opengl.data.type.GLSelectionData;
  import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
  import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
- import org.tizen.dynamicanalyzer.util.DALogger;
++import org.tizen.dynamicanalyzer.util.Logger;
  import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
  import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
  
@@@ -147,58 -149,16 +147,58 @@@ public class GLContextTable extends DAT
                        }
  
                        List<String> text = new ArrayList<String>();
 -                      DATableDataFormat tableData = new DATableDataFormat(
 -                                      Long.parseLong(selectedSeq));
 +                      DATableDataFormat tableData = new DATableDataFormat(Long.parseLong(selectedSeq));
  
                        String stateName = dbManager.getColumnName()[i];
 -                      String defaultState = GLContextDefaultValueHashMap
 -                                      .getDefaultValue(stateName);
 +                      Object defaultValue = GLContextDefaultValueHashMap.getDefaultValue(stateName);
 +                      Object currentValue = stateValueList.get(i);
 +
 +                      String defatueState = CommonConstants.EMPTY;
 +                      String currenteState = CommonConstants.EMPTY;
 +
 +                      if (GLDataManager.getInstance().getContextDBTableManage().isIntegerType(i)) {
 +                              defatueState = Integer.toString((Integer) defaultValue);
 +                              if (null == currentValue) {
 +                                      currenteState = defatueState;
 +                              } else {
 +                                      currenteState = Integer.toString((Integer) currentValue);
 +                              }
 +
 +                      } else if (GLDataManager.getInstance().getContextDBTableManage().isLongType(i)) {
 +                              defatueState = Long.toString((Long) defaultValue);
 +                              if (null == currentValue) {
 +                                      currenteState = defatueState;
 +                              } else {
 +                                      currenteState = Long.toString((Long) currentValue);
 +                              }
 +                      } else if (GLDataManager.getInstance().getContextDBTableManage().isBooleans(i)) {
 +                              defatueState = Boolean.toString((Boolean) defaultValue);
 +                              if (null == currentValue) {
 +                                      currenteState = defatueState;
 +                              } else {
 +                                      currenteState = Boolean.toString((Boolean) currentValue);
 +                              }
 +                      } else if (GLDataManager.getInstance().getContextDBTableManage().isStringType(i)) {
 +                              defatueState = (String) defaultValue;
 +                              if (null == currentValue) {
 +                                      currenteState = defatueState;
 +                              } else {
 +                                      currenteState = (String) currentValue;
 +                              }
 +                      } else if (GLDataManager.getInstance().getContextDBTableManage().isBooleanArray(i)
 +                                      || GLDataManager.getInstance().getContextDBTableManage().isIntegerArray(i)
 +                                      || GLDataManager.getInstance().getContextDBTableManage().isLongArray(i)) {
 +                              defatueState = "null";
 +                              if (null == currentValue) {
 +                                      currenteState = defatueState;
 +                              } else {
 +                                      currenteState = (String) currentValue.toString();
 +                              }
 +                      } else {
-                               DALogger.getInstance().error("undefine column : " + i);
++                              Logger.error("undefine column : " + i);
 +                      }
  
 -                      String currenteState = stateValueList.get(i);
 -                      if (isCheckedBox
 -                                      && !isChangeStateValue(defaultState, currenteState)) {
 +                      if (isCheckedBox && !isChangeStateValue(defatueState, currenteState)) {
                                continue;
                        }