public ShipChassis getShipChassis(String id) {
		ShipChassis result = shipChassisMap.get(id);

		if ( result == null ) {  // Wasn't cached; try parsing it.
			InputStream in = null;
			try {
				in = getDataInputStream("data/"+ id +".xml");
				result = dataParser.readChassis(in);
				shipChassisMap.put( id, result );

			} catch (JAXBException e) {
				log.error( "Parsing XML failed for ShipChassis id: "+ id );

			} catch (FileNotFoundException e) {
				log.error( "No ShipChassis found for id: "+ id );

			} catch (IOException e) {
				log.error( "An error occurred while parsing ShipChassis: "+ id, e );

			} finally {
				try {if (in != null) in.close();}
				catch (IOException f) {}
			}
		}

		return result;
	}