/* 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.disassembly; import com.google.common.base.Preconditions; import com.google.security.zynamics.binnavi.Database.Interfaces.SQLProvider; import com.google.security.zynamics.binnavi.Database.MockClasses.MockSqlProvider; import com.google.security.zynamics.binnavi.debug.debugger.DebuggerTemplate; import com.google.security.zynamics.binnavi.debug.models.trace.TraceList; import com.google.security.zynamics.binnavi.disassembly.AddressSpaces.CAddressSpace; import com.google.security.zynamics.binnavi.disassembly.views.INaviView; import com.google.security.zynamics.zylib.general.ListenerProvider; import com.google.security.zynamics.zylib.types.lists.FilledList; import java.util.ArrayList; import java.util.Date; import java.util.List; public final class MockProject implements INaviProject { private final ListenerProvider<IProjectListener> m_listeners = new ListenerProvider<IProjectListener>(); final SQLProvider provider; private final CProjectConfiguration m_configuration; private final CProjectContent m_content; private boolean m_isloaded = true; public MockProject(final SQLProvider provider) { this.provider = Preconditions.checkNotNull(provider, "Error: provider argument can not be null"); m_configuration = new CProjectConfiguration(this, m_listeners, provider, 0, "Mock Project", null, new Date(), new Date(), new ArrayList<DebuggerTemplate>()); m_content = new CProjectContent(this, m_listeners, provider, new ArrayList<CAddressSpace>(), new ArrayList<INaviView>(), new FilledList<TraceList>()); } public MockProject() { provider = new MockSqlProvider(); m_configuration = new CProjectConfiguration(this, m_listeners, provider, 0, "Mock Project", null, new Date(), new Date(), new ArrayList<DebuggerTemplate>()); m_content = new CProjectContent(this, m_listeners, provider, new ArrayList<CAddressSpace>(), new ArrayList<INaviView>(), new FilledList<TraceList>()); } @Override public void addListener(final IProjectListener listener) { m_listeners.addListener(listener); } @Override public boolean close() { if (m_isloaded) { m_isloaded = false; return true; } else { return false; } } @Override public int getAddressSpaceCount() { throw new IllegalStateException("Not yet implemented"); } @Override public CProjectConfiguration getConfiguration() { return m_configuration; } @Override public CProjectContent getContent() { return m_content; } @Override public List<INaviView> getViewsWithAddresses(final List<UnrelocatedAddress> addresses, final boolean all) { throw new IllegalStateException("Not yet implemented"); } @Override public boolean inSameDatabase(final IDatabaseObject provider) { throw new IllegalStateException("Not yet implemented"); } @Override public boolean inSameDatabase(final SQLProvider provider) { throw new IllegalStateException("Not yet implemented"); } @Override public boolean isLoaded() { return m_isloaded; } @Override public boolean isLoading() { return false; } @Override public void load() { m_isloaded = true; } @Override public String readSetting(final String key) { throw new IllegalStateException("Not yet implemented"); } @Override public void removeListener(final IProjectListener listener) { m_listeners.removeListener(listener); } @Override public void writeSetting(final String key, final String value) { throw new IllegalStateException("Not yet implemented"); } }