/* Copyright 2014 Google Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package com.google.security.zynamics.binnavi.Database.MockClasses; import java.util.ArrayList; import java.util.List; import com.google.security.zynamics.binnavi.Database.NodeParser.ICodeNodeProvider; import com.google.security.zynamics.binnavi.Database.NodeParser.ParserException; import com.google.security.zynamics.binnavi.disassembly.CReference; import com.google.security.zynamics.zylib.disassembly.IAddress; public final class MockCodeNodeProvider implements ICodeNodeProvider { private int index = -1; public List<MockCodeNodeData> data = new ArrayList<MockCodeNodeData>(); @Override public IAddress getInstructionAddress() { return data.get(index).address; } @Override public String getInstructionArchitecture() { return data.get(index).architecture; } @Override public int getBorderColor() { return data.get(index).borderColor; } @Override public int getColor() { return data.get(index).color; } @Override public byte[] getData() { return data.get(index).data; } @Override public int getExpressionTreeId() { return data.get(index).expressionId; } @Override public int getExpressionTreeType() { return data.get(index).expressionType; } @Override public IAddress getFunctionAddress() { return null; } @Override public Integer getGlobalInstructionCommentId() { return index; // TODO(timkornau) } @Override public Integer getGlobalNodeCommentId() { // TODO(timkornau) return null; } @Override public double getHeight() { return 0; } @Override public String getImmediate() { return data.get(index).immediate; } @Override public Integer getLocalInstructionCommentId() { // TODO(timkornau) return null; } @Override public Integer getLocalNodeCommentId() { // TODO(timkornau) return null; } @Override public String getMnemonic() { return data.get(index).mnemonic; } @Override public int getModule() { return data.get(index).module; } @Override public int getNodeId() { return data.get(index).nodeId; } @Override public Integer getOperandPosition() { return data.get(index).operandPosition; } @Override public IAddress getParentFunction() { return data.get(index).parentFunction; } @Override public int getParentId() { return data.get(index).parentId; } @Override public CReference getReference() { return data.get(index).reference; } @Override public String getReplacement() { return data.get(index).replacement; } @Override public int getSubstitutionOffset() throws ParserException { // TODO(jannewger): Auto-generated method stub return 0; } @Override public int getSubstitutionPosition() { // TODO(jannewger): Auto-generated method stub return 0; } @Override public Integer getSubstitutionTypeId() throws ParserException { // TODO(jannewger): Auto-generated method stub return null; } @Override public String getSymbol() { return data.get(index).symbol; } @Override public Integer getTypeInstanceId() throws ParserException { return data.get(index).typeInstanceId; } @Override public double getWidth() { return 0; } @Override public double getX() { return 0; } @Override public double getY() { return 0; } @Override public boolean isAfterLast() { return index >= data.size(); } @Override public boolean isSelected() { return data.get(index).selected; } @Override public boolean isVisible() { return data.get(index).visible; } @Override public boolean next() { index++; return !isAfterLast(); } @Override public boolean prev() { index--; return index >= 0; } @Override public Integer[] getSubstitutionPath() throws ParserException { // TODO Auto-generated method stub return null; } }