/******************************************************************************* * Copyright (c) 2005, 2011 Intel Corporation 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: * Intel Corporation - Initial API and implementation * IBM Corporation *******************************************************************************/ package org.eclipse.cdt.core.cdtvariables; import org.eclipse.cdt.internal.core.SafeStringInterner; import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver; /** * This is the trivial implementation of the IBuildMacro used internaly by the MBS * * @since 3.0 */ public class CdtVariable implements ICdtVariable { protected String fName; protected int fType; protected String fStringValue; protected String fStringListValue[]; protected CdtVariable(){ } public CdtVariable(String name, int type, String value){ fName = SafeStringInterner.safeIntern(name); fType = type; fStringValue = SafeStringInterner.safeIntern(value); } public CdtVariable(String name, int type, String value[]){ fName = SafeStringInterner.safeIntern(name); fType = type; fStringListValue = value; } public CdtVariable(ICdtVariable var){ fName = var.getName(); fType = var.getValueType(); try { if(CdtVariableResolver.isStringListVariable(fType)) fStringListValue = var.getStringListValue(); else fStringValue = var.getStringValue(); } catch (CdtVariableException e) { } } /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.macros.IBuildMacro#getName() */ public String getName() { return fName; } /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.macros.IBuildMacro#getMacroValueType() */ public int getValueType() { return fType; } /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.macros.IBuildMacro#getStringValue() */ public String getStringValue() throws CdtVariableException { if(CdtVariableResolver.isStringListVariable(fType)) throw new CdtVariableException(ICdtVariableStatus.TYPE_MACRO_NOT_STRING,fName,null,fName); return fStringValue; } /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.macros.IBuildMacro#getStringListValue() */ public String[] getStringListValue() throws CdtVariableException { if(!CdtVariableResolver.isStringListVariable(fType)) throw new CdtVariableException(ICdtVariableStatus.TYPE_MACRO_NOT_STRINGLIST,fName,null,fName); return fStringListValue; } }