def Library()

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)
    }
  }