/******************************************************************************* * Copyright (c) 2015 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.rte.packs; import com.arm.cmsis.pack.CpStrings; import com.arm.cmsis.pack.data.ICpItem; import com.arm.cmsis.pack.data.ICpPack; import com.arm.cmsis.pack.enums.EVersionMatchMode; import com.arm.cmsis.pack.info.ICpPackInfo; /** * Base class for RTE pack tree */ public abstract class RtePackItem implements IRtePackItem { protected IRtePackItem fParent = null; public RtePackItem(IRtePackItem parent) { fParent = parent; } @Override public void clear() { fParent = null; } @Override public IRtePackCollection getRoot() { if(fParent != null) return fParent.getRoot(); return null; } @Override public IRtePackFamily getFamily() { if(fParent != null) return fParent.getFamily(); return null; } @Override public IRtePackItem getParent() { return fParent; } @Override public EVersionMatchMode getVersionMatchMode() { if(fParent != null) return fParent.getVersionMatchMode(); return null; } @Override public String getUrl() { ICpItem item = getCpItem(); if(item != null) return item.getUrl(); return null; } @Override public String getDescription() { ICpPack pack = getPack(); if(pack != null) return pack.getDescription(); return CpStrings.RtePackIsNotInstalled; } @Override public void destroy() { clear(); fParent = null; } @Override public ICpPack getPack() { return null; } @Override public ICpPackInfo getPackInfo() { return null; } @Override public boolean isUseAllLatestPacks() { if(fParent != null) return fParent.isUseAllLatestPacks(); return false; } }