@misc{zhang2024autocoderover,
title={AutoCodeRover: Autonomous Program Improvement},
author={Yuntong Zhang and Haifeng Ruan and Zhiyu Fan and Abhik Roychoudhury},
year={2024},
eprint={2404.05427},
archivePrefix={arXiv},
primaryClass={cs.SE}
}
/**
* Called when a null model is about to be retrieved in order to allow a subclass to provide an
* initial model.
* <p>
* By default this implementation looks components in the parent chain owning a
* {@link IComponentInheritedModel} to provide a model for this component via
* {@link IComponentInheritedModel#wrapOnInheritance(Component)}.
* <p>
* For example a {@link FormComponent} has the opportunity to instantiate a model on the fly
* using its {@code id} and the containing {@link Form}'s model, if the form holds a
* {@link CompoundPropertyModel}.
*
* @return The model
*/
protected IModel<?> initModel()
{
IModel<?> foundModel = null;
// Search parents for IComponentInheritedModel (i.e. CompoundPropertyModel)
for (Component current = getParent(); current != null; current = current.getParent())
{
// Get model
// Don't call the getModel() that could initialize many in between
// completely useless models.
// IModel model = current.getDefaultModel();
IModel<?> model = current.getModelImpl();
if (model instanceof IWrapModel && !(model instanceof IComponentInheritedModel))
{
model = ((IWrapModel<?>)model).getWrappedModel();
}
if (model instanceof IComponentInheritedModel)
{
// return the shared inherited
foundModel = ((IComponentInheritedModel<?>)model).wrapOnInheritance(this);
setFlag(FLAG_INHERITABLE_MODEL, true);
break;
}
}
// No model for this component!
return foundModel;
}
H. Kim, J. Choi, D. Choi, H. Choi, and P. Kim. Proceedings of the 2012 ACM Research in Applied Computation Symposium, page 310--315. New York, NY, USA, ACM, (2012)
G. Mishne, and M. de Rijke. Proceedings ot the 7th International Conference on Computer-Assisted Information Retrieval (Recherche d'Information et ses Applications) - RIAO 2004, page 539--554. CID, (April 2004)
S. Gulwani, and M. Marron. Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, page 803--814. New York, NY, USA, ACM, (2014)
D. Pavlovic, P. Pepper, and D. Smith. Mathematics of Program Construction, volume 6120 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, (2010)
A. Heydarnoori, K. Czarnecki, and T. Bartolomei. ECOOP 2009 – Object-Oriented Programming, volume 5653 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, (2009)
M. Bruch, T. Schäfer, and M. Mezini. Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange, page 55--59. New York, NY, USA, ACM, (2006)