content: package org.flashtool.gui.models;
  
  import java.io.File;
  import java.io.IOException;
  import java.util.Iterator;
  import java.util.LinkedList;
  import java.util.List;
  import java.util.jar.JarFile;
  
  import org.flashtool.gui.TARestore;
  
  import lombok.extern.slf4j.Slf4j;
  
  @Slf4j
  public class TreeDevice {
  
  	String deviceid="";
  	String devicename="";
  	private List<TreeDeviceVariant> devicevariants = new LinkedList<TreeDeviceVariant>();
  	
  	public TreeDevice(String id, String name, File f, JarFile jf) throws IOException, Exception {
  		deviceid=id;
  		devicename=name;
  		addVariant(f,jf);
  	}
  
  	String getDevice() {
  		return deviceid;
  	}
  	
  	String getDeviceName() {
  		return devicename;
  	}
  	
  	public void addVariant(File f, JarFile jf) throws IOException, Exception {
  		String model = jf.getManifest().getMainAttributes().getValue("device");
  		if (contains(model)) {
  			TreeDeviceVariant v = get(model);
  			v.addCustomization(f,jf);
  		}
  		else {
  			TreeDeviceVariant v = new TreeDeviceVariant(model,f,jf);
  			devicevariants.add(v);
  		}
  	}
  
  	public boolean contains(String variantname) {
  		  Iterator<TreeDeviceVariant> ivariant = devicevariants.iterator();
  		  while (ivariant.hasNext()) {
  			  TreeDeviceVariant variant = ivariant.next();
  			  if (variant.getVariant().equals(variantname)) return true; 
  		  }
  		  return false;
  	}
  	  
  	public TreeDeviceVariant get(String variantname) {
  		  Iterator<TreeDeviceVariant> ivariant = devicevariants.iterator();
  		  while (ivariant.hasNext()) {
  			  TreeDeviceVariant variant = ivariant.next();
  			  if (variant.getVariant().equals(variantname)) return variant; 
  		  }
  		  return null;
  	}
  	
  	public List<TreeDeviceVariant> getVariants() {
  		return devicevariants;
  	}
  
  }