Ejemplo n.º 1
0
  /**
   * Returns a manufacturer for the given name. The manufacturer is searched for within the
   * manufacturers and if a match is found the corresponding object is returned. If not, a new
   * manufacturer is returned with display and simple name the name specified. Subsequent requests
   * for the same (or corresponding) manufacturer name will return the same object.
   *
   * @param name the manufacturer name to search for.
   * @return the Manufacturer object corresponding the name.
   */
  public static Manufacturer getManufacturer(String name) {
    String searchString = generateSearchString(name);
    Manufacturer m = manufacturers.get(searchString);
    if (m != null) {
      return m;
    }

    m = new Manufacturer(name.trim(), name.trim(), Motor.Type.UNKNOWN);

    // We need some additional external synchronization here so we lock on the manufacturers.
    synchronized (manufacturers) {
      Manufacturer retest = manufacturers.get(searchString);
      if (retest != null) {
        // it exists now.
        return retest;
      }
      manufacturers.add(m);
    }
    return m;
  }
Ejemplo n.º 2
0
  static {

    // AeroTech has many name combinations...
    List<String> names = new ArrayList<String>();
    for (String s : new String[] {"A", "AT", "AERO", "AEROT", "AEROTECH"}) {
      names.add(s);
      names.add(s + "-RMS");
      names.add(s + "-RCS");
      names.add("RCS-" + s);
      names.add(s + "-APOGEE");
    }
    names.add("ISP");

    // Aerotech has single-use, reload and hybrid motors
    manufacturers.add(
        new Manufacturer("AeroTech", "AeroTech", Motor.Type.UNKNOWN, names.toArray(new String[0])));

    manufacturers.add(
        new Manufacturer(
            "Alpha Hybrid Rocketry LLC",
            "Alpha Hybrid Rocketry",
            Motor.Type.HYBRID,
            "AHR",
            "ALPHA",
            "ALPHA HYBRID",
            "ALPHA HYBRIDS",
            "ALPHA HYBRIDS ROCKETRY"));

    // TODO: HIGH: AMW/ProX - how to classify?

    manufacturers.add(
        new Manufacturer(
            "Animal Motor Works", "Animal Motor Works", Motor.Type.RELOAD, "AMW", "AW", "ANIMAL"));

    manufacturers.add(new Manufacturer("Apogee", "Apogee", Motor.Type.SINGLE, "AP", "APOG", "P"));

    manufacturers.add(
        new Manufacturer(
            "Cesaroni Technology Inc.",
            "Cesaroni Technology",
            Motor.Type.RELOAD,
            "CES",
            "CESARONI",
            "CESARONI TECHNOLOGY INCORPORATED",
            "CTI",
            "CS",
            "CSR",
            "PRO38",
            "ABC"));

    manufacturers.add(
        new Manufacturer(
            "Contrail Rockets",
            "Contrail Rockets",
            Motor.Type.HYBRID,
            "CR",
            "CONTR",
            "CONTRAIL",
            "CONTRAIL ROCKET"));

    manufacturers.add(new Manufacturer("Estes", "Estes", Motor.Type.SINGLE, "E", "ES"));

    // Ellis Mountain has both single-use and reload motors
    manufacturers.add(
        new Manufacturer(
            "Ellis Mountain",
            "Ellis Mountain",
            Motor.Type.UNKNOWN,
            "EM",
            "ELLIS",
            "ELLIS MOUNTAIN ROCKET",
            "ELLIS MOUNTAIN ROCKETS"));

    manufacturers.add(
        new Manufacturer(
            "Gorilla Rocket Motors",
            "Gorilla Rocket Motors",
            Motor.Type.RELOAD,
            "GR",
            "GORILLA",
            "GORILLA ROCKET",
            "GORILLA ROCKETS",
            "GORILLA MOTOR",
            "GORILLA MOTORS",
            "GORILLA ROCKET MOTOR"));

    manufacturers.add(
        new Manufacturer("HyperTEK", "HyperTEK", Motor.Type.HYBRID, "H", "HT", "HYPER"));

    manufacturers.add(
        new Manufacturer(
            "Kosdon by AeroTech",
            "Kosdon by AeroTech",
            Motor.Type.RELOAD,
            "K",
            "KBA",
            "K-AT",
            "KOS",
            "KOSDON",
            "KOSDON/AT",
            "KOSDON/AEROTECH"));

    manufacturers.add(
        new Manufacturer("Loki Research", "Loki Research", Motor.Type.RELOAD, "LOKI", "LR"));

    manufacturers.add(
        new Manufacturer(
            "Public Missiles, Ltd.",
            "Public Missiles",
            Motor.Type.SINGLE,
            "PM",
            "PML",
            "PUBLIC MISSILES LIMITED"));

    manufacturers.add(
        new Manufacturer(
            "Propulsion Polymers",
            "Propulsion Polymers",
            Motor.Type.HYBRID,
            "PP",
            "PROP",
            "PROPULSION"));

    manufacturers.add(new Manufacturer("Quest", "Quest", Motor.Type.SINGLE, "Q", "QU"));

    manufacturers.add(
        new Manufacturer("RATT Works", "RATT Works", Motor.Type.HYBRID, "RATT", "RT", "RTW"));

    manufacturers.add(
        new Manufacturer(
            "Roadrunner Rocketry", "Roadrunner Rocketry", Motor.Type.SINGLE, "RR", "ROADRUNNER"));

    manufacturers.add(
        new Manufacturer("Rocketvision", "Rocketvision", Motor.Type.SINGLE, "RV", "ROCKET VISION"));

    manufacturers.add(
        new Manufacturer(
            "Sky Ripper Systems",
            "Sky Ripper Systems",
            Motor.Type.HYBRID,
            "SR",
            "SRS",
            "SKYR",
            "SKYRIPPER",
            "SKY RIPPER",
            "SKYRIPPER SYSTEMS"));

    manufacturers.add(
        new Manufacturer(
            "West Coast Hybrids",
            "West Coast Hybrids",
            Motor.Type.HYBRID,
            "WCH",
            "WCR",
            "WEST COAST",
            "WEST COAST HYBRID"));

    // German WECO Feuerwerk, previously Sachsen Feuerwerk
    manufacturers.add(
        new Manufacturer(
            "WECO Feuerwerk",
            "WECO Feuerwerk",
            Motor.Type.SINGLE,
            "WECO",
            "WECO FEUERWERKS",
            "SF",
            "SACHSEN",
            "SACHSEN FEUERWERK",
            "SACHSEN FEUERWERKS"));
  }