project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/mmp/MMPData.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/mmp/MMPData.java Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,236 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+package com.nokia.carbide.internal.cpp.epoc.engine.model.mmp;
+
+import com.nokia.carbide.cpp.epoc.engine.image.IMultiImageSource;
+import com.nokia.carbide.cpp.epoc.engine.model.mmp.*;
+import com.nokia.carbide.internal.cpp.epoc.engine.model.BaseData;
+
+import org.eclipse.core.runtime.IPath;
+
+import java.util.*;
+
+public class MMPData extends BaseData<IMMPView> implements IMMPData {
+ private final List<IPath> sources;
+ private final List<IPath> documents;
+ private final List<IPath> userIncludes;
+ private final List<IPath> systemIncludes;
+ private final Map<EMMPStatement, List<String>> stringListArgumentSettings;
+ private final List<IMMPBitmap> bitmaps;
+ private final Set<EMMPStatement> flagSettings;
+ private final Map<EMMPStatement, String> singleArgumentSettings;
+ private final List<IMMPResource> resourceBlocks;
+ private final List<IMMPAIFInfo> aifs;
+
+ private final List<IPath> userResources;
+ private final List<IPath> systemResources;
+ private final List<EMMPLanguage> languages;
+ private final String uid2;
+ private final String uid3;
+ private final Map<String, String> options;
+ private final Map<String, String> linkerOptions;
+ private final Map<String, String> replaceOptions;
+
+ private IPath defFile;
+ private IPath[] effectiveSourcePaths;
+ private IPath targetPath;
+ private Collection<IPath> sourcePaths;
+ private boolean isDefFileInFixedDirectory;
+ public MMPData(IMMPView view) {
+ super(view);
+
+ this.flagSettings =
+ Collections.unmodifiableSet(
+ new HashSet<EMMPStatement>(view.getFlags()));
+ this.singleArgumentSettings =
+ Collections.unmodifiableMap(
+ new HashMap<EMMPStatement, String>(view.getSingleArgumentSettings()));
+ this.stringListArgumentSettings =
+ Collections.unmodifiableMap(
+ new HashMap<EMMPStatement, List<String>>(view.getListArgumentSettings()));
+ this.sources =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getSources()));
+ this.documents =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getDocuments()));
+ this.userIncludes =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getUserIncludes()));
+ this.userResources =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getUserResources()));
+ this.systemIncludes =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getSystemIncludes()));
+ this.systemResources =
+ Collections.unmodifiableList(new ArrayList<IPath>(view.getSystemResources()));
+ this.aifs =
+ Collections.unmodifiableList(copyAIFList(view.getAifs()));
+ this.bitmaps =
+ Collections.unmodifiableList(copyBitmapList(view.getBitmaps()));
+ this.languages =
+ Collections.unmodifiableList(new ArrayList<EMMPLanguage>(view.getLanguages()));
+ this.resourceBlocks =
+ Collections.unmodifiableList(copyResourceList(view.getResourceBlocks()));
+ this.options =
+ Collections.unmodifiableMap(new HashMap<String, String>(view.getOptions()));
+ this.linkerOptions =
+ Collections.unmodifiableMap(new HashMap<String, String>(view.getLinkerOptions()));
+ this.replaceOptions =
+ Collections.unmodifiableMap(new HashMap<String, String>(view.getReplaceOptions()));
+ this.uid2 = view.getUid2();
+ this.uid3 = view.getUid3();
+ this.defFile = view.getDefFile();
+ this.effectiveSourcePaths = view.getEffectiveSourcePaths();
+ this.targetPath = view.getTargetFilePath();
+ this.sourcePaths = Collections.unmodifiableCollection(new ArrayList<IPath>(((MMPView)view).getSourcePaths()));
+ this.isDefFileInFixedDirectory = view.isDefFileInFixedDirectory();
+ }
+
+ private List<IMMPAIFInfo> copyAIFList(List<IMMPAIFInfo> list) {
+ List<IMMPAIFInfo> copy = new ArrayList<IMMPAIFInfo>();
+ for (IMMPAIFInfo item : list)
+ copy.add(item.copy());
+ return copy;
+ }
+ private List<IMMPBitmap> copyBitmapList(List<IMMPBitmap> list) {
+ List<IMMPBitmap> copy = new ArrayList<IMMPBitmap>();
+ for (IMMPBitmap item : list)
+ copy.add((IMMPBitmap) item.copy());
+ return copy;
+ }
+ private List<IMMPResource> copyResourceList(List<IMMPResource> list) {
+ List<IMMPResource> copy = new ArrayList<IMMPResource>();
+ for (IMMPResource item : list)
+ copy.add(item.copy());
+ return copy;
+ }
+
+ public List<String> getASSPLibraries() {
+ return stringListArgumentSettings.get(EMMPStatement.ASSPLIBRARY);
+ }
+
+ public List<IMMPAIFInfo> getAifs() {
+ return aifs;
+ }
+
+ public List<IMMPBitmap> getBitmaps() {
+ return bitmaps;
+ }
+
+ public List<String> getDebugLibraries() {
+ return stringListArgumentSettings.get(EMMPStatement.DEBUGLIBRARY);
+ }
+
+ public IPath getDefFile() {
+ return defFile;
+ }
+
+ public List<IPath> getDocuments() {
+ return documents;
+ }
+
+ public IPath[] getEffectiveSourcePaths() {
+ return effectiveSourcePaths;
+ }
+
+ public Set<EMMPStatement> getFlags() {
+ return flagSettings;
+ }
+
+ public List<EMMPLanguage> getLanguages() {
+ return languages;
+ }
+
+ public List<String> getLibraries() {
+ return stringListArgumentSettings.get(EMMPStatement.LIBRARY);
+ }
+
+ public Map<String, String> getLinkerOptions() {
+ return linkerOptions;
+ }
+
+ public Map<EMMPStatement, List<String>> getListArgumentSettings() {
+ return stringListArgumentSettings;
+ }
+
+ public List<IMultiImageSource> getMultiImageSources() {
+ return (List) bitmaps;
+ }
+
+ public Map<String, String> getOptions() {
+ return options;
+ }
+
+ public IPath[] getRealSourcePaths() {
+ return (IPath[]) sourcePaths.toArray(new IPath[sourcePaths.size()]);
+ }
+
+ public Map<String, String> getReplaceOptions() {
+ return replaceOptions;
+ }
+
+ public List<IMMPResource> getResourceBlocks() {
+ return resourceBlocks;
+ }
+
+ public Map<EMMPStatement, String> getSingleArgumentSettings() {
+ return singleArgumentSettings;
+ }
+
+ public List<IPath> getSources() {
+ return sources;
+ }
+
+ public List<String> getStaticLibraries() {
+ return stringListArgumentSettings.get(EMMPStatement.STATICLIBRARY);
+ }
+
+ public List<IPath> getSystemIncludes() {
+ return systemIncludes;
+ }
+
+ public List<IPath> getSystemResources() {
+ return systemResources;
+ }
+
+ public IPath getTargetFilePath() {
+ return targetPath;
+ }
+
+ public String getUid2() {
+ return uid2;
+ }
+
+ public String getUid3() {
+ return uid3;
+ }
+
+ public List<IPath> getUserIncludes() {
+ return userIncludes;
+ }
+
+ public List<IPath> getUserResources() {
+ return userResources;
+ }
+
+ public List<String> getWin32Libraries() {
+ return stringListArgumentSettings.get(EMMPStatement.WIN32_LIBRARY);
+ }
+
+ public boolean isDefFileInFixedDirectory() {
+ return this.isDefFileInFixedDirectory;
+ }
+
+}