in model/src/org/jetbrains/jps/Library.groovy [20:52]
def Library(project, name, forceInitialization, initializer) {
this.project = project;
this.name = name;
Closure lazyInit = {
def meta = new InitializingExpando()
meta.classpath = {Object[] arg ->
arg.each { classpath << it }
}
meta.src = {Object[] arg ->
arg.each { sourceRoots << it }
}
initializer.delegate = meta
initializer.setResolveStrategy Closure.DELEGATE_FIRST
initializer.call()
def wrongProperties = ["classpath", "src"] as Set
meta.getProperties().each {String key, Object value ->
if (!wrongProperties.contains(key)) {
props[key] = value
}
}
}
if (forceInitialization) {
lazyInit.call()
}
else {
setInitializer(lazyInit)
}
}