動的な値のコンストラクタインジェクション・その後

private Model getSpecifiedIdModel(int id) {
 ComponentDef componentDef = container.getComponentDef(Model.class);
 ArgDef argDef = componentDef.getArgDef(0);
 
 Object valueBackup = argDef.getValue();
 Expression expressionBackup = argDef.getExpression();
 
 argDef.setValue(id);
 argDef.setExpression(null);
 Model model = (Model) container.getComponent(Model.class);
 
 argDef.setValue(valueBackup);
 argDef.setExpression(expressionBackup);
 
 return model;
}

苦し紛れもいいとこです。なんとコンポーネント定義を捏造です! これはひどいww