All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gradle.plugins.ide.eclipse.model.EclipseModel Maven / Gradle / Ivy

There is a newer version: 8.11.1
Show newest version
/*
 * Copyright 2016 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.gradle.plugins.ide.eclipse.model;

import com.google.common.base.Preconditions;
import groovy.lang.Closure;
import org.gradle.api.Action;

import java.io.File;
import java.util.Map;

import static org.gradle.util.ConfigureUtil.configure;

/**
 * DSL-friendly model of the Eclipse project information.
 * First point of entry for customizing Eclipse project generation.
 *
 * 
 * apply plugin: 'java'
 * apply plugin: 'eclipse'
 * apply plugin: 'eclipse-wtp' //for web projects only
 *
 * eclipse {
 *   pathVariables 'GRADLE_HOME': file('/best/software/gradle'), 'TOMCAT_HOME': file('../tomcat')
 *
 *   project {
 *     //see docs for {@link EclipseProject}
 *   }
 *
 *   classpath {
 *     //see docs for {@link EclipseClasspath}
 *   }
 *
 *   wtp {
 *     //see docs for {@link EclipseWtp}
 *   }
 * }
 * 
* * More examples in docs for {@link EclipseProject}, {@link EclipseClasspath}, {@link EclipseWtp} */ public class EclipseModel { private EclipseProject project; private EclipseClasspath classpath; private EclipseJdt jdt; private EclipseWtp wtp; /** * Configures eclipse project information *

* For examples see docs for {@link EclipseProject} */ public EclipseProject getProject() { return project; } public void setProject(EclipseProject project) { this.project = project; } /** * Configures eclipse classpath information *

* For examples see docs for {@link EclipseClasspath} */ public EclipseClasspath getClasspath() { return classpath; } public void setClasspath(EclipseClasspath classpath) { this.classpath = classpath; } /** * Configures eclipse java compatibility information (jdt) *

* For examples see docs for {@link EclipseProject} */ public EclipseJdt getJdt() { return jdt; } public void setJdt(EclipseJdt jdt) { this.jdt = jdt; } /** * Configures eclipse wtp information *

* For examples see docs for {@link EclipseWtp} */ public EclipseWtp getWtp() { return wtp; } public void setWtp(EclipseWtp wtp) { this.wtp = wtp; } /** * Configures eclipse project information *

* For examples see docs for {@link EclipseProject} * * @param closure */ public void project(Closure closure) { configure(closure, project); } /** * Configures eclipse project information *

* For examples see docs for {@link EclipseProject} * * @param action * @since 3.5 */ public void project(Action action) { action.execute(project); } /** * Configures eclipse classpath information *

* For examples see docs for {@link EclipseClasspath} * * @param closure */ public void classpath(Closure closure) { configure(closure, classpath); } /** * Configures eclipse classpath information *

* For examples see docs for {@link EclipseClasspath} * * @param action * @since 3.5 */ public void classpath(Action action) { action.execute(classpath); } /** * Configures eclipse wtp information *

* For examples see docs for {@link EclipseWtp} * * @param closure */ public void wtp(Closure closure) { configure(closure, wtp); } /** * Configures eclipse wtp information *

* For examples see docs for {@link EclipseWtp} * * @param action * @since 3.5 */ public void wtp(Action action) { action.execute(wtp); } /** * Configures eclipse java compatibility information (jdt) *

* For examples see docs for {@link EclipseProject} * * @param closure */ public void jdt(Closure closure) { configure(closure, jdt); } /** * Configures eclipse java compatibility information (jdt) *

* For examples see docs for {@link EclipseProject} * * @param action * @since 3.5 */ public void jdt(Action action) { action.execute(jdt); } /** * Adds path variables to be used for replacing absolute paths in classpath entries. *

* If the beginning of the absolute path of a library or other path-related element matches a value of a variable, * a variable entry is used. The matching part of the library path is replaced with the variable name. *

* For example see docs for {@link EclipseModel} * * @param pathVariables A map with String->File pairs. */ public void pathVariables(Map pathVariables) { Preconditions.checkNotNull(pathVariables); classpath.getPathVariables().putAll(pathVariables); if (wtp != null && wtp.getComponent() != null) { wtp.getComponent().getPathVariables().putAll(pathVariables); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy