Map的ナ物のBindを如何したら良いのだろう?

こんな物かいて、ムリヤリ対応したけれど
普通は、どうやってるのだろう?

	// normal-parser
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("plain_text"))
			.to(PlainTextParser.class);
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("var"))
			.to(VarMethodParser.class);
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("rep"))
			.to(RepMethodParser.class);
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("each"))
			.to(EachMethodParser.class);
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("def"))
			.to(DefMethodParser.class);
			
	// layout-parser
			
		binder.bind(Parser.class)
			.annotatedWith(Names.named("layout"))
			.to(LayoutParentMethodParser.class);

		binder.bind(Parser.class)
			.annotatedWith(Names.named("layout_capture"))
			.to(LayoutCaptureMethodParser.class);

		binder.bind(Parser.class)
			.annotatedWith(Names.named("layout_replace"))
			.to(LayoutReplaceMethodParser.class);
			
	// map
		binder.bind(ParserMap.class).to(ParserMapHtml.class);
	private static class ParserMapHtml implements ParserMap
	{
		private HashMap<String,Parser> hash = 
			new HashMap<String, Parser>();
		
		@Inject
		public void _(@Named("plain_text") Parser parser){hash.put("",parser);}
		
		@Inject
		public void var(@Named("var") Parser parser){hash.put("var",parser);}
		
		@Inject
		public void rep(@Named("rep") Parser parser){hash.put("rep",parser);}
		
		@Inject
		public void each(@Named("each") Parser parser){hash.put("each",parser);}
		
		@Inject
		public void def(@Named("def") Parser parser){hash.put("def",parser);}
		
		@Inject
		public void layout(@Named("layout") Parser parser){hash.put("layout",parser);}
		
		@Inject
		public void layout_capture(@Named("layout_capture") Parser parser){hash.put("layout.capture",parser);}
		
		@Inject
		public void layout_replace(@Named("layout_replace") Parser parser){hash.put("layout.replace",parser);}

		@Override
		public Parser get(String key) throws NoSuchParserMethodException
		{
			final Parser parser=hash.get(key);
			if(parser==null)
			{
				throw new NoSuchParserMethodException("method is [" + key + "]");
			}
			return parser;
		}
	}