/*******************************************************************************
* This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* Synopsys, Inc. - ARC GNU Toolchain support
*******************************************************************************/
package com.arc.embeddedcdt.common;
import java.util.LinkedList;
import java.util.List;
import java.util.Arrays;
public enum FtdiDevice {
EM_SK_v1x("EM Starter Kit v1.x"),
EM_SK_v2("EM Starter Kit v2"),
EM_SK_v21("EM Starter Kit v2.1"),
EM_SK_v22("EM Starter Kit v2.2"),
AXS101("AXS101", Arrays.asList(FtdiCore.AS221_1, FtdiCore.AS221_2, FtdiCore.EM6,
FtdiCore.ARC770D)),
AXS102("AXS102", Arrays.asList(FtdiCore.HS34, FtdiCore.HS36)),
AXS103("AXS103", Arrays.asList(FtdiCore.HS36, FtdiCore.HS38_0, FtdiCore.HS38_1)),
CUSTOM("Custom configuration file");
private final String text;
private final List<FtdiCore> cores;
private FtdiDevice(final String text) {
this(text, Arrays.asList(FtdiCore.DEFAULT_CORE));
}
private FtdiDevice(final String text, final List<FtdiCore> cores) {
if (cores.isEmpty())
throw new IllegalArgumentException("Cores list must not be empty.");
this.text = text;
this.cores = cores;
}
@Override
public String toString() {
return text;
}
public static FtdiDevice fromString(final String string) {
for (FtdiDevice device : FtdiDevice.values()) {
if (device.toString().equals(string))
return device;
}
throw new IllegalArgumentException("String does not correspond to any FTDI device.");
}
public List<FtdiCore> getCores() {
return new LinkedList<FtdiCore>(cores);
}
}