package org.eclipse.wst.xsl.core.compiler.xslt10.res;

import java.util.ListResourceBundle;
import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.core.internal.compiler.xslt10.res.messages"; //$NON-NLS-1$
	public static String XSLTErrorResources_0;
	public static String XSLTErrorResources_248;
	public static String XSLTErrorResources_249;
	public static String XSLTErrorResources_250;
	public static String XSLTErrorResources_251;
	public static String XSLTErrorResources_252;
	public static String XSLTErrorResources_253;
	public static String XSLTErrorResources_254;
	public static String XSLTErrorResources_255;
	public static String XSLTErrorResources_256;
	public static String XSLTErrorResources_257;
	public static String XSLTErrorResources_258;
	public static String XSLTErrorResources_259;
	public static String XSLTErrorResources_260;
	public static String XSLTErrorResources_261;
	public static String XSLTErrorResources_262;
	public static String XSLTErrorResources_263;
	public static String XSLTErrorResources_264;
	public static String XSLTErrorResources_265;
	public static String XSLTErrorResources_266;
	public static String XSLTErrorResources_267;
	public static String XSLTErrorResources_268;
	public static String XSLTErrorResources_269;
	public static String XSLTErrorResources_270;
	public static String XSLTErrorResources_271;
	public static String XSLTErrorResources_272;
	public static String XSLTErrorResources_273;
	public static String XSLTErrorResources_274;
	public static String XSLTErrorResources_275;
	public static String XSLTErrorResources_276;
	public static String XSLTErrorResources_277;
	public static String XSLTErrorResources_278;
	public static String XSLTErrorResources_279;
	public static String XSLTErrorResources_280;
	public static String XSLTErrorResources_281;
	public static String XSLTErrorResources_282;
	public static String XSLTErrorResources_283;
	public static String XSLTErrorResources_284;
	public static String XSLTErrorResources_285;
	public static String XSLTErrorResources_286;
	public static String XSLTErrorResources_287;
	public static String XSLTErrorResources_288;
	public static String XSLTErrorResources_289;
	public static String XSLTErrorResources_290;
	public static String XSLTErrorResources_291;
	public static String XSLTErrorResources_292;
	public static String XSLTErrorResources_293;
	public static String XSLTErrorResources_294;
	public static String XSLTErrorResources_295;
	public static String XSLTErrorResources_296;
	public static String XSLTErrorResources_297;
	public static String XSLTErrorResources_298;
	public static String XSLTErrorResources_299;
	public static String XSLTErrorResources_300;
	public static String XSLTErrorResources_301;
	public static String XSLTErrorResources_302;
	public static String XSLTErrorResources_303;
	public static String XSLTErrorResources_304;
	public static String XSLTErrorResources_305;
	public static String XSLTErrorResources_306;
	public static String XSLTErrorResources_307;
	public static String XSLTErrorResources_308;
	public static String XSLTErrorResources_309;
	public static String XSLTErrorResources_310;
	public static String XSLTErrorResources_311;
	public static String XSLTErrorResources_312;
	public static String XSLTErrorResources_313;
	public static String XSLTErrorResources_314;
	public static String XSLTErrorResources_315;
	public static String XSLTErrorResources_316;
	public static String XSLTErrorResources_317;
	public static String XSLTErrorResources_318;
	public static String XSLTErrorResources_319;
	public static String XSLTErrorResources_320;
	public static String XSLTErrorResources_321;
	public static String XSLTErrorResources_322;
	public static String XSLTErrorResources_323;
	public static String XSLTErrorResources_324;
	public static String XSLTErrorResources_325;
	public static String XSLTErrorResources_326;
	public static String XSLTErrorResources_327;
	public static String XSLTErrorResources_328;
	public static String XSLTErrorResources_329;
	public static String XSLTErrorResources_330;
	public static String XSLTErrorResources_331;
	public static String XSLTErrorResources_332;
	public static String XSLTErrorResources_333;
	public static String XSLTErrorResources_334;
	public static String XSLTErrorResources_335;
	public static String XSLTErrorResources_336;
	public static String XSLTErrorResources_337;
	public static String XSLTErrorResources_338;
	public static String XSLTErrorResources_339;
	public static String XSLTErrorResources_340;
	public static String XSLTErrorResources_341;
	public static String XSLTErrorResources_342;
	public static String XSLTErrorResources_343;
	public static String XSLTErrorResources_344;
	public static String XSLTErrorResources_345;
	public static String XSLTErrorResources_346;
	public static String XSLTErrorResources_347;
	public static String XSLTErrorResources_348;
	public static String XSLTErrorResources_349;
	public static String XSLTErrorResources_350;
	public static String XSLTErrorResources_351;
	public static String XSLTErrorResources_352;
	public static String XSLTErrorResources_353;
	public static String XSLTErrorResources_354;
	public static String XSLTErrorResources_355;
	public static String XSLTErrorResources_356;
	public static String XSLTErrorResources_357;
	public static String XSLTErrorResources_358;
	public static String XSLTErrorResources_359;
	public static String XSLTErrorResources_360;
	public static String XSLTErrorResources_361;
	public static String XSLTErrorResources_362;
	public static String XSLTErrorResources_363;
	public static String XSLTErrorResources_364;
	public static String XSLTErrorResources_365;
	public static String XSLTErrorResources_366;
	public static String XSLTErrorResources_367;
	public static String XSLTErrorResources_368;
	public static String XSLTErrorResources_369;
	public static String XSLTErrorResources_370;
	public static String XSLTErrorResources_371;
	public static String XSLTErrorResources_372;
	public static String XSLTErrorResources_373;
	public static String XSLTErrorResources_374;
	public static String XSLTErrorResources_375;
	public static String XSLTErrorResources_376;
	public static String XSLTErrorResources_377;
	public static String XSLTErrorResources_378;
	public static String XSLTErrorResources_379;
	public static String XSLTErrorResources_380;
	public static String XSLTErrorResources_381;
	public static String XSLTErrorResources_382;
	public static String XSLTErrorResources_383;
	public static String XSLTErrorResources_384;
	public static String XSLTErrorResources_385;
	public static String XSLTErrorResources_386;
	public static String XSLTErrorResources_387;
	public static String XSLTErrorResources_388;
	public static String XSLTErrorResources_389;
	public static String XSLTErrorResources_390;
	public static String XSLTErrorResources_391;
	public static String XSLTErrorResources_392;
	public static String XSLTErrorResources_393;
	public static String XSLTErrorResources_394;
	public static String XSLTErrorResources_395;
	public static String XSLTErrorResources_396;
	public static String XSLTErrorResources_397;
	public static String XSLTErrorResources_398;
	public static String XSLTErrorResources_399;
	public static String XSLTErrorResources_400;
	public static String XSLTErrorResources_401;
	public static String XSLTErrorResources_402;
	public static String XSLTErrorResources_403;
	public static String XSLTErrorResources_404;
	public static String XSLTErrorResources_405;
	public static String XSLTErrorResources_406;
	public static String XSLTErrorResources_407;
	public static String XSLTErrorResources_408;
	public static String XSLTErrorResources_409;
	public static String XSLTErrorResources_410;
	public static String XSLTErrorResources_411;
	public static String XSLTErrorResources_412;
	public static String XSLTErrorResources_413;
	public static String XSLTErrorResources_414;
	public static String XSLTErrorResources_415;
	public static String XSLTErrorResources_416;
	public static String XSLTErrorResources_417;
	public static String XSLTErrorResources_418;
	public static String XSLTErrorResources_419;
	public static String XSLTErrorResources_420;
	public static String XSLTErrorResources_421;
	public static String XSLTErrorResources_422;
	public static String XSLTErrorResources_423;
	public static String XSLTErrorResources_424;
	public static String XSLTErrorResources_425;
	public static String XSLTErrorResources_426;
	public static String XSLTErrorResources_427;
	public static String XSLTErrorResources_428;
	public static String XSLTErrorResources_429;
	public static String XSLTErrorResources_430;
	public static String XSLTErrorResources_431;
	public static String XSLTErrorResources_432;
	public static String XSLTErrorResources_433;
	public static String XSLTErrorResources_434;
	public static String XSLTErrorResources_435;
	public static String XSLTErrorResources_436;
	public static String XSLTErrorResources_437;
	public static String XSLTErrorResources_438;
	public static String XSLTErrorResources_439;
	public static String XSLTErrorResources_440;
	public static String XSLTErrorResources_441;
	public static String XSLTErrorResources_442;
	public static String XSLTErrorResources_443;
	public static String XSLTErrorResources_444;
	public static String XSLTErrorResources_445;
	public static String XSLTErrorResources_446;
	public static String XSLTErrorResources_447;
	public static String XSLTErrorResources_448;
	public static String XSLTErrorResources_449;
	public static String XSLTErrorResources_450;
	public static String XSLTErrorResources_451;
	public static String XSLTErrorResources_452;
	public static String XSLTErrorResources_453;
	public static String XSLTErrorResources_454;
	public static String XSLTErrorResources_455;
	public static String XSLTErrorResources_456;
	public static String XSLTErrorResources_457;
	public static String XSLTErrorResources_458;
	public static String XSLTErrorResources_459;
	public static String XSLTErrorResources_460;
	public static String XSLTErrorResources_461;
	public static String XSLTErrorResources_462;
	public static String XSLTErrorResources_463;
	public static String XSLTErrorResources_464;
	public static String XSLTErrorResources_465;
	public static String XSLTErrorResources_466;
	public static String XSLTErrorResources_467;
	public static String XSLTErrorResources_468;
	public static String XSLTErrorResources_469;
	public static String XSLTErrorResources_470;
	public static String XSLTErrorResources_471;
	public static String XSLTErrorResources_472;
	public static String XSLTErrorResources_473;
	public static String XSLTErrorResources_474;
	public static String XSLTErrorResources_475;
	public static String XSLTErrorResources_476;
	public static String XSLTErrorResources_477;
	public static String XSLTErrorResources_478;
	public static String XSLTErrorResources_479;
	public static String XSLTErrorResources_480;
	public static String XSLTErrorResources_481;
	public static String XSLTErrorResources_482;
	public static String XSLTErrorResources_483;
	public static String XSLTErrorResources_484;
	public static String XSLTErrorResources_485;
	public static String XSLTErrorResources_486;
	public static String XSLTErrorResources_487;
	public static String XSLTErrorResources_488;
	public static String XSLTErrorResources_489;
	public static String XSLTErrorResources_490;
	public static String XSLTErrorResources_491;
	public static String XSLTErrorResources_492;
	public static String XSLTErrorResources_493;
	public static String XSLTErrorResources_494;
	public static String XSLTErrorResources_495;
	public static String XSLTErrorResources_496;
	public static String XSLTErrorResources_497;
	public static String XSLTErrorResources_498;
	public static String XSLTErrorResources_499;
	public static String XSLTErrorResources_500;
	public static String XSLTErrorResources_501;
	public static String XSLTErrorResources_502;
	public static String XSLTErrorResources_503;
	public static String XSLTErrorResources_504;
	public static String XSLTErrorResources_505;
	public static String XSLTErrorResources_506;
	public static String XSLTErrorResources_507;
	public static String XSLTErrorResources_508;
	public static String XSLTErrorResources_509;
	public static String XSLTErrorResources_510;
	public static String XSLTErrorResources_511;
	public static String XSLTErrorResources_512;
	public static String XSLTErrorResources_513;
	public static String XSLTErrorResources_514;
	public static String XSLTErrorResources_515;
	public static String XSLTErrorResources_516;
	public static String XSLTErrorResources_517;
	public static String XSLTErrorResources_518;
	public static String XSLTErrorResources_519;
	public static String XSLTErrorResources_520;
	public static String XSLTErrorResources_521;
	public static String XSLTErrorResources_522;
	public static String XSLTErrorResources_523;
	public static String XSLTErrorResources_524;
	public static String XSLTErrorResources_525;
	public static String XSLTErrorResources_526;
	public static String XSLTErrorResources_527;
	public static String XSLTErrorResources_528;
	public static String XSLTErrorResources_529;
	public static String XSLTErrorResources_530;
	public static String XSLTErrorResources_531;
	public static String XSLTErrorResources_532;
	public static String XSLTErrorResources_533;
	public static String XSLTErrorResources_534;
	public static String XSLTErrorResources_535;
	public static String XSLTErrorResources_536;
	public static String XSLTErrorResources_537;
	public static String XSLTErrorResources_538;
	public static String XSLTErrorResources_539;
	public static String XSLTErrorResources_540;
	public static String XSLTErrorResources_541;
	public static String XSLTErrorResources_542;
	public static String XSLTErrorResources_543;
	public static String XSLTErrorResources_544;
	public static String XSLTErrorResources_545;
	public static String XSLTErrorResources_546;
	public static String XSLTErrorResources_547;
	public static String XSLTErrorResources_548;
	public static String XSLTErrorResources_549;
	public static String XSLTErrorResources_550;
	public static String XSLTErrorResources_551;
	public static String XSLTErrorResources_552;
	public static String XSLTErrorResources_553;
	public static String XSLTErrorResources_554;
	public static String XSLTErrorResources_555;
	public static String XSLTErrorResources_556;
	public static String XSLTErrorResources_557;
	public static String XSLTErrorResources_558;
	public static String XSLTErrorResources_559;
	public static String XSLTErrorResources_560;
	public static String XSLTErrorResources_561;
	public static String XSLTErrorResources_562;
	public static String XSLTErrorResources_563;
	public static String XSLTErrorResources_564;
	public static String XSLTErrorResources_565;
	public static String XSLTErrorResources_566;
	public static String XSLTErrorResources_567;
	public static String XSLTErrorResources_568;
	public static String XSLTErrorResources_569;
	public static String XSLTErrorResources_570;
	public static String XSLTErrorResources_571;
	public static String XSLTErrorResources_572;
	public static String XSLTErrorResources_573;
	public static String XSLTErrorResources_574;
	public static String XSLTErrorResources_575;
	public static String XSLTErrorResources_576;
	public static String XSLTErrorResources_577;
	public static String XSLTErrorResources_578;
	public static String XSLTErrorResources_579;
	public static String XSLTErrorResources_580;
	public static String XSLTErrorResources_581;
	public static String XSLTErrorResources_582;
	public static String XSLTErrorResources_583;
	public static String XSLTErrorResources_584;
	public static String XSLTErrorResources_585;
	public static String XSLTErrorResources_586;
	public static String XSLTErrorResources_587;
	public static String XSLTErrorResources_588;
	public static String XSLTErrorResources_589;
	public static String XSLTErrorResources_590;
	public static String XSLTErrorResources_591;
	public static String XSLTErrorResources_592;
	public static String XSLTErrorResources_593;
	public static String XSLTErrorResources_594;
	public static String XSLTErrorResources_595;
	public static String XSLTErrorResources_596;
	public static String XSLTErrorResources_597;
	public static String XSLTErrorResources_598;
	public static String XSLTErrorResources_599;
	public static String XSLTErrorResources_600;
	public static String XSLTErrorResources_601;
	public static String XSLTErrorResources_602;
	public static String XSLTErrorResources_603;
	public static String XSLTErrorResources_604;
	public static String XSLTErrorResources_605;
	public static String XSLTErrorResources_606;
	public static String XSLTErrorResources_607;
	public static String XSLTErrorResources_608;
	public static String XSLTErrorResources_609;
	public static String XSLTErrorResources_610;
	public static String XSLTErrorResources_611;
	public static String XSLTErrorResources_612;
	public static String XSLTErrorResources_613;
	public static String XSLTErrorResources_614;
	public static String XSLTErrorResources_615;
	public static String XSLTErrorResources_616;
	public static String XSLTErrorResources_617;
	public static String XSLTErrorResources_618;
	public static String XSLTErrorResources_619;
	public static String XSLTErrorResources_620;
	public static String XSLTErrorResources_621;
	public static String XSLTErrorResources_622;
	public static String XSLTErrorResources_623;
	public static String XSLTErrorResources_624;
	public static String XSLTErrorResources_625;
	public static String XSLTErrorResources_626;
	public static String XSLTErrorResources_627;
	public static String XSLTErrorResources_628;
	public static String XSLTErrorResources_629;
	public static String XSLTErrorResources_630;
	public static String XSLTErrorResources_631;
	public static String XSLTErrorResources_632;
	public static String XSLTErrorResources_633;
	public static String XSLTErrorResources_634;
	public static String XSLTErrorResources_635;
	public static String XSLTErrorResources_636;
	public static String XSLTErrorResources_637;
	public static String XSLTErrorResources_638;
	public static String XSLTErrorResources_639;
	public static String XSLTErrorResources_640;
	public static String XSLTErrorResources_641;
	public static String XSLTErrorResources_642;
	public static String XSLTErrorResources_643;
	public static String XSLTErrorResources_644;
	public static String XSLTErrorResources_645;
	public static String XSLTErrorResources_646;
	public static String XSLTErrorResources_647;
	public static String XSLTErrorResources_648;
	public static String XSLTErrorResources_649;
	public static String XSLTErrorResources_650;
	public static String XSLTErrorResources_651;
	public static String XSLTErrorResources_652;
	public static String XSLTErrorResources_653;
	public static String XSLTErrorResources_654;
	public static String XSLTErrorResources_655;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}

	/**
	 * Creates a message from the specified key and replacement arguments,
	 * localized to the given locale.
	 * 
	 * @param fResourceBundle
	 *            The resource bundle to use.
	 * @param msgKey
	 *            The message key to use.
	 * @param args
	 *            The arguments to be used as replacement text in the message
	 *            created.
	 * 
	 * @return The formatted message string.
	 */
	public static final String createMessage(String msgKey, Object args[]) // throws
	// Exception
	{

		String fmsg = null;
		boolean throwex = false;

		ListResourceBundle resource = new XSLTErrorResources();

		String msg = resource.getString(msgKey);

		if (args != null) {
			try {

				// Do this to keep format from crying.
				// This is better than making a bunch of conditional
				// code all over the place.
				int n = args.length;

				for (int i = 0; i < n; i++) {
					if (null == args[i])
						args[i] = "";
				}

				fmsg = java.text.MessageFormat.format(msg, args);
			} catch (Exception e) {
				fmsg = "Format Failed:" + msg;
				e.printStackTrace();
			}
		} else
			fmsg = msg;

		if (throwex) {
			throw new RuntimeException(fmsg);
		}

		return fmsg;
	}

}
