1 package net.sf.openrocket.database;
3 import java.util.ArrayList;
4 import java.util.Collections;
7 import net.sf.openrocket.preset.ComponentPreset;
8 import net.sf.openrocket.startup.Application;
10 public class ComponentPresetDatabase extends Database<ComponentPreset> implements ComponentPresetDao {
12 public ComponentPresetDatabase() {
17 public List<ComponentPreset> listAll() {
22 public void insert( ComponentPreset preset ) {
27 public List<ComponentPreset> listForType( ComponentPreset.Type type ) {
29 return Collections.<ComponentPreset>emptyList();
32 List<ComponentPreset> result = new ArrayList<ComponentPreset>(list.size()/6);
34 for( ComponentPreset preset : list ) {
35 if ( preset.get(ComponentPreset.TYPE).equals(type) ) {
44 * Return a list of component presets based on the type.
45 * All components returned will be of Type type.
48 * @param favorite if true, only return the favorites. otherwise return all matching.
52 public List<ComponentPreset> listForType( ComponentPreset.Type type, boolean favorite ) {
55 return listForType(type);
58 List<ComponentPreset> result = new ArrayList<ComponentPreset>(list.size()/6);
60 for( ComponentPreset preset : list ) {
61 if ( preset.isFavorite() && preset.get(ComponentPreset.TYPE).equals(type) ) {
69 public List<ComponentPreset> listForTypes( ComponentPreset.Type ... type ) {
71 if( type == null || type.length == 0 ) {
72 return Collections.<ComponentPreset>emptyList();
75 if (type.length == 1 ) {
76 return listForType(type[0]);
79 List<ComponentPreset> result = new ArrayList<ComponentPreset>(list.size()/6);
81 for( ComponentPreset preset : list ) {
82 ComponentPreset.Type presetType = preset.get(ComponentPreset.TYPE);
83 typeLoop: for( int i=0; i<type.length; i++ ) {
84 if ( presetType.equals(type[i]) ) {
86 break typeLoop; // from inner loop.
95 public List<ComponentPreset> listForTypes( List<ComponentPreset.Type> types ) {
96 return listForTypes( (ComponentPreset.Type[]) types.toArray() );
100 public List<ComponentPreset> find(String manufacturer, String partNo) {
101 List<ComponentPreset> presets = new ArrayList<ComponentPreset>();
102 for( ComponentPreset preset : list ) {
103 if ( preset.getManufacturer().getSimpleName().equals(manufacturer) && preset.getPartNo().equals(partNo) ) {
111 public void setFavorite( ComponentPreset preset, boolean favorite ) {
112 preset.setFavorite(favorite);
113 Application.getPreferences().setComponentFavorite( preset, favorite );
114 this.fireAddEvent(preset);