public class BuildSystemConfiguration extends HashStructureAdapter
Modifier and Type | Class and Description |
---|---|
static class |
BuildSystemConfiguration.BuildClassNameFilter
Indicates what kind of class name filtering the build will apply.
|
_hash
Modifier and Type | Method and Description |
---|---|
boolean |
addCopyResExtension(java.lang.String extension)
Add an extension to the list of extensions where all files
with an extension on that list, and present on one of the
source paths of the project, are copied by the build system
during a build.
|
boolean |
addExcludedUrl(Project project,
java.net.URL url)
Add a file or directory to the files and directories that
are excluded from builds.
|
static boolean |
addPackagesAllowedInFilter(BuildSystemConfiguration.BuildClassNameFilter filter,
java.util.Collection<java.lang.String> packageNames)
The build only allows classes in certain packages if a filter is set.
|
static boolean |
buildAllowsClass(Project project,
java.lang.String fqClassName,
boolean isJDKClass)
Check if the incoming class is allowed in the build.
|
boolean |
compilerOptionRequiresArgument(java.lang.String optionName)
Determine if an option of the compiler requires an argument
|
boolean |
compilerRecognizesOption(java.lang.String optionName)
Determine if a compiler recognizes a particular option.
|
void |
disableCompilerOption(java.lang.String optionName)
Disables an option for the compiler
|
void |
enableCompilerOption(java.lang.String optionName,
java.lang.String argument)
Enables an option for the compiler
|
static BuildSystemConfiguration.BuildClassNameFilter |
getBuildClassNameFilter(Project project)
Retrieve the current class filter the build applies.
|
static BaseClassLocator |
getBuildFilterClassLocator(BaseClassLocator locator,
Project project,
boolean isJdkLocator)
Wrap the incoming locator in a filter locator which will filter classes and
packages based on build settings.
|
java.lang.String |
getCompilerOption(java.lang.String optionName)
Determine if an option is enabled for a compiler and if so, return
the option with optional argument as a String similar to what
would be given to the compiler, e.g.
|
boolean |
getCopyFilesNoExtension()
Get the setting that indicates if files with no extension should
be copied during the build.
|
java.lang.String[] |
getCopyRes()
Get the extension list where all files with an extension on
that list, and present on one of the source paths of the project,
are copied by the build system during a build.
|
java.lang.String |
getCurrentEncoding()
Get the current encoding used for the build, which is either
the specific current encoding previously set or the default
encoding for the IDE.
|
java.lang.String |
getCurrentWebIanaEncoding()
Returns current IANA web document encoding preference.
|
java.util.List<java.net.URL> |
getExcludedUrls(Project project)
Get the files and directories excluded from builds.
|
static BuildSystemConfiguration |
getInstance(PropertyStorage project)
Returns a BuildSystemConfiguration instance for the specified project.
|
boolean |
getOutOfProcess()
Get the flag that specifies if the compilation will happen in or
out of process
|
java.lang.String |
getOutOfProcessJavaOptions()
Get the out of process Java Options used when the compiler is
executed out of process
|
boolean |
getReverseCopyRes()
Get the setting that indicates if the build should exclude the
files with extensions in the copyRes list during the copy
|
java.lang.String |
getSource()
Get the -source setting, e.g.
|
JdkVersion |
getSourceJdkVersion()
Get the -source option for the build expressed as a JdkVersion
|
java.lang.String[] |
getSources()
--------------------------------------------------------
return the list of sources acceptable for the project jdk
|
java.lang.String |
getSourceString()
Internal use only.
|
java.lang.String |
getTarget()
Get the -target setting, e.g.
|
java.lang.String[] |
getTargets()
--------------------------------------------------------
return the list of targets acceptable for the project jdk
|
java.lang.String |
getTargetString()
Internal use only.
|
boolean |
hasCurrentEncoding()
Determine if a specific current encoding has been set.
|
boolean |
isJDK12OrHigher()
Is the project's JDK version 1.2 or higher?
|
boolean |
isJDK13OrHigher()
Is the project's JDK version 1.3 or higher?
|
boolean |
isJDK14OrHigher()
Is the project's JDK version 1.4 or higher?
|
boolean |
isJDK15()
Is the project's JDK version 1.5 ?
|
boolean |
isJDK15OrHigher()
Is the project's JDK version 1.5 or higher?
This is useful to detect if generics are turned on.
|
boolean |
isJDK16()
Is the project's JDK version 1.6 ?
|
boolean |
isJDK16OrHigher()
Is the project's JDK version 1.6 or higher?
|
boolean |
isJDK17()
Is the project's JDK version 1.7 ?
|
boolean |
isJDK17OrHigher()
Is the project's JDK version 1.7 or higher?
|
boolean |
isJDK18()
Is the project's JDK version 1.8 ?
|
boolean |
isJDK18OrHigher()
Is the project's JDK version 1.8 or higher?
|
boolean |
isJDK19()
Deprecated.
Use isJDK9 instead
|
boolean |
isJDK19OrHigher()
Deprecated.
Use isJDK9OrHigher instead
|
boolean |
isJDK9()
Is the project's JDK version 9 ?
|
boolean |
isJDK9OrHigher()
Is the project's JDK version 9 or higher?
|
boolean |
removeCopyResExtension(java.lang.String extension)
Remove an extension from the list of extensions where all files
with an extension on that list, and present on one of the
source paths of the project, are copied by the build system
during a build.
|
boolean |
removeExcludedUrl(Project project,
java.net.URL url)
Remove a file or directory from the files and directories that
are excluded from builds.
|
void |
setCopyFilesNoExtension(boolean copyFilesNoExtension)
Set the setting that indicates if files with no extension should
be copied during the build.
|
void |
setCopyRes(java.lang.String[] copyRes)
Set the extension list where all files with an extension on
that list, and present on one of the source paths of the project,
are copied by the build system during a build.
|
void |
setCurrentEncoding(java.lang.String currentEncoding)
Set the encoding used for the build, e.g.
|
void |
setCurrentWebIanaEncoding(java.lang.String encoding)
Sets IANA web document encoding preference
|
void |
setExcludedUrls(Project project,
java.util.Collection<java.net.URL> urls)
Set the files and directories that are excluded from builds.
|
void |
setOutOfProcess(boolean outOfProcess)
Set the flag that specifies if the compilation will happen in or
out of process
|
void |
setOutOfProcessJavaOptions(java.lang.String options)
Set the out of process Java Options used when the compiler is
executed out of process
|
void |
setReverseCopyRes(boolean reverseCopyRes)
Set the setting that indicates if the build should exclude the
files with extensions in the copyRes list during the copy
|
void |
setSource(java.lang.String source)
Set the -source option for the build, e.g.
|
void |
setTarget(java.lang.String target)
Set the -target option for the build, e.g.
|
addStructureChangeListener, containsKey, copyTo, copyToImpl, equals, equalsImpl, findOrCreate, forcedCopyTo, getHashStructure, removeStructureChangeListener, useObjectEquals
public static BuildSystemConfiguration getInstance(PropertyStorage project)
public boolean isJDK12OrHigher()
public boolean isJDK13OrHigher()
public boolean isJDK14OrHigher()
public boolean isJDK15()
public boolean isJDK15OrHigher()
public boolean isJDK16()
public boolean isJDK16OrHigher()
public boolean isJDK17()
public boolean isJDK17OrHigher()
public boolean isJDK18()
public boolean isJDK18OrHigher()
@Deprecated public boolean isJDK19()
public boolean isJDK9()
@Deprecated public boolean isJDK19OrHigher()
public boolean isJDK9OrHigher()
public java.lang.String[] getTargets()
public java.lang.String getTargetString()
getTarget()
public java.lang.String getTarget()
public void setTarget(java.lang.String target)
target
- Set the -target option, if null the
JDK version of the build will be usedpublic java.lang.String[] getSources()
public java.lang.String getSourceString()
getSource()
public java.lang.String getSource()
public void setSource(java.lang.String source)
source
- Set the -source option, if null the
JDK version of the build will be usedpublic JdkVersion getSourceJdkVersion()
public java.lang.String[] getCopyRes()
public boolean addCopyResExtension(java.lang.String extension)
extension
- An extension with a leading periodpublic boolean removeCopyResExtension(java.lang.String extension)
extension
- An extension with a leading periodpublic void setCopyRes(java.lang.String[] copyRes)
copyRes
- An array of extensions, if null the build
will use the default list from then onpublic boolean getReverseCopyRes()
public void setReverseCopyRes(boolean reverseCopyRes)
reverseCopyRes
- if true, the build will exclude files with
extensions on the copyRes listpublic boolean getCopyFilesNoExtension()
public void setCopyFilesNoExtension(boolean copyFilesNoExtension)
copyFilesNoExtension
- If true, the build will copy files with
no extensionpublic java.lang.String getCurrentEncoding()
public boolean hasCurrentEncoding()
public void setCurrentEncoding(java.lang.String currentEncoding)
currentEncoding
- The encoding, if null the default
encoding of the platform will be usedpublic java.lang.String getCurrentWebIanaEncoding()
public void setCurrentWebIanaEncoding(java.lang.String encoding)
encoding
- IANA encoding stringpublic boolean getOutOfProcess()
public void setOutOfProcess(boolean outOfProcess)
outOfProcess
- If true, the compilation will happen out of process,
otherwise it will happen in processpublic java.lang.String getOutOfProcessJavaOptions()
public void setOutOfProcessJavaOptions(java.lang.String options)
options
- The out of process Java Optionspublic java.util.List<java.net.URL> getExcludedUrls(Project project)
project
- A valid project is necessary because URL's are stored
relative to a project as much as possible.java.lang.IllegalArgumentException
- if project is nullpublic boolean addExcludedUrl(Project project, java.net.URL url)
project
- A valid project is necessary because URL's are stored
relative to a project as much as possible.java.lang.IllegalArgumentException
- if project or url is nullremoveExcludedUrl( Project, URL )
public boolean removeExcludedUrl(Project project, java.net.URL url)
project
- A valid project is necessary because URL's are stored
relative to a project as much as possible.url
- A file or directory URLjava.lang.IllegalArgumentException
- if project or url is nulladdExcludedUrl( Project, URL )
public void setExcludedUrls(Project project, java.util.Collection<java.net.URL> urls)
project
- A valid project is necessary because URL's are stored
relative to a project as much as possible.urls
- The file and directory URL's. If null or empty, the excluded
URL's setting is clearedjava.lang.IllegalArgumentException
- if project is nulladdExcludedUrl( Project, URL )
public void enableCompilerOption(java.lang.String optionName, java.lang.String argument)
optionName
- An option name which can't be nullargument
- A non-empty String if the option requires an argument,
otherwise nulljava.lang.IllegalArgumentException
- if 1) the option is not
recognized by the compiler, or 2) if the option requires an argument
but none is supplied, or 3) if the option requires no argument
but one is suppliedcompilerOptionRequiresArgument(java.lang.String)
,
compilerRecognizesOption(java.lang.String)
,
disableCompilerOption(java.lang.String)
,
setSource(java.lang.String)
,
setTarget(java.lang.String)
,
setCurrentEncoding(java.lang.String)
public void disableCompilerOption(java.lang.String optionName)
optionName
- An option name which can't be nulljava.lang.IllegalArgumentException
- if the option is not
recognized by the compilercompilerRecognizesOption(java.lang.String)
,
enableCompilerOption(java.lang.String, java.lang.String)
,
setSource(java.lang.String)
,
setTarget(java.lang.String)
,
setCurrentEncoding(java.lang.String)
public boolean compilerRecognizesOption(java.lang.String optionName)
optionName
- An option name which can't be nullpublic boolean compilerOptionRequiresArgument(java.lang.String optionName)
optionName
- An option name which can't be nulljava.lang.IllegalArgumentException
- if the option is not
recognized by the compiler,compilerRecognizesOption(java.lang.String)
public java.lang.String getCompilerOption(java.lang.String optionName)
optionName
- An option name which can't be nulljava.lang.IllegalArgumentException
- if the option is not
recognized by the compilercompilerRecognizesOption(java.lang.String)
,
getSource()
,
getTarget()
,
getCurrentEncoding()
public static boolean buildAllowsClass(Project project, java.lang.String fqClassName, boolean isJDKClass)
fqClassName
- The fully qualified name of a classisJDKClass
- If true, the check to determine if the class is in
the JDK is skipped, and the overall check will run a lot fasterpublic static BuildSystemConfiguration.BuildClassNameFilter getBuildClassNameFilter(Project project)
project
- The project being builtpublic static BaseClassLocator getBuildFilterClassLocator(BaseClassLocator locator, Project project, boolean isJdkLocator)
locator
- The base locatorproject
- The projectisJdkLocator
- True if the incoming locator is a JDK locator, which will
speed up the filter by a significant amountpublic static boolean addPackagesAllowedInFilter(BuildSystemConfiguration.BuildClassNameFilter filter, java.util.Collection<java.lang.String> packageNames)
filter
- The filterpackageNames
- A collection of package names