/******************************************************************************* * Copyright (c) 2016 ARM Ltd. and others * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * ARM Ltd and ARM Germany GmbH - Initial API and implementation *******************************************************************************/ package com.arm.cmsis.pack.data; import java.util.Collection; import java.util.LinkedList; import com.arm.cmsis.pack.common.CmsisConstants; import com.arm.cmsis.pack.info.ICpComponentInfo; import com.arm.cmsis.pack.info.ICpFileInfo; import com.arm.cmsis.pack.info.ICpItemInfo; /** * Serves as the default implementation of ICpCodeTemplate */ public class CpCodeTemplate extends CpItem implements ICpCodeTemplate { Collection<String> fCodeTemplates = new LinkedList<>(); ICpItemInfo fInfo; /** * @param parent */ public CpCodeTemplate(ICpItem parent) { super(parent); } /** * @param parent * @param tag * @param info */ public CpCodeTemplate(ICpItem parent, String tag, ICpItemInfo info) { super(parent, tag); fInfo = info; } @Override public ICpPack getPack() { return fInfo == null ? null : fInfo.getPack(); } @Override public ICpRootItem getRootItem() { return getPack(); } @Override public String[] getCodeTemplates() { return fCodeTemplates.toArray(new String[fCodeTemplates.size()]); } @Override public void addCodeTemplate(String filePath) { fCodeTemplates.add(filePath); } @Override public String getComponentName() { if (fInfo instanceof ICpComponentInfo) { // This is the component class node return fInfo.getAttribute(CmsisConstants.CCLASS); } else if (fInfo instanceof ICpFileInfo) { ICpItem componentInfo = fInfo.getParent(); String componentName = componentInfo.getAttribute(CmsisConstants.CGROUP); String sub = componentInfo.getAttribute(CmsisConstants.CSUB); if (!sub.isEmpty()) { componentName += "." + sub; //$NON-NLS-1$ } return componentName; } return CmsisConstants.EMPTY_STRING; } @Override public String getSelectionName() { if (fInfo instanceof ICpFileInfo) { return fInfo.getAttribute(CmsisConstants.SELECT); } return CmsisConstants.EMPTY_STRING; } }