diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java index d2149f8fd6e..4e84a94fdfe 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java @@ -14,28 +14,25 @@ import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.managedbuilder.core.IConfiguration; /** - * * this interface represent the environment variable provider - the main entry-point * to be used for querying the build environment - * + * * @since 3.0 * @noextend This class is not intended to be subclassed by clients. * @noimplement This interface is not intended to be implemented by clients. */ -public interface IEnvironmentVariableProvider{ - +public interface IEnvironmentVariableProvider { /** - * - * - * @return the reference to the IBuildEnvironmentVariable interface representing + * @return the reference to the IBuildEnvironmentVariable interface representing * the variable of a given name + * * @param variableName environment variable name - * if environment variable names are case insensitive in the current OS, + * if environment variable names are case insensitive in the current OS, * the environment variable provider will query the getVariable method of suppliers always * passing it the uppercase variable name not depending on the case of the variableName - * passed to the IEnvironmentVariableProvider.getVariable() method. This will prevent the + * passed to the IEnvironmentVariableProvider.getVariable() method. This will prevent the * supplier from answering different values for the same variable given the names that differ - * only by case. E.g. if the current OS does not support case sensitive variables both of the + * only by case. E.g. if the current OS does not support case sensitive variables both of the * calls below: * * provider.getVariable("FOO",level,includeParentContexts); @@ -48,42 +45,60 @@ public interface IEnvironmentVariableProvider{ * 2. IManagedProject to represent the managed project * 3. IWorkspace to represent the workspace * 4. null to represent the system environment passed to eclipse + * * @deprecated use {@link IEnvironmentVariableProvider#getVariable(String, IConfiguration, boolean)} instead */ @Deprecated - public IBuildEnvironmentVariable getVariable( - String variableName, Object level, boolean includeParentLevels, boolean resolveMacros); - - public IEnvironmentVariable getVariable(String variableName, - IConfiguration cfg, boolean resolveMacros); + public IBuildEnvironmentVariable getVariable(String variableName, Object level, boolean includeParentLevels, boolean resolveMacros); /** + * Get variable for the given configuration, normally including those defined in project properties + * and workspace preferences. * - * if environment variable names are case insensitive in the current OS, + * See also {@code CCorePlugin.getDefault().getBuildEnvironmentManager().getVariable(String name, ICConfigurationDescription cfg, boolean resolveMacros)} + * + * @param variableName - name of the variable (not including $ sign). + * @param cfg - configuration or {@code null} for workspace preferences only. + * @param resolveMacros - if {@code true} expand macros, {@code false} otherwise. + * @return variable defined for the configuration or the workspace. + * Returns {@code null} if variable is not defined. + */ + public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros); + + /** + * if environment variable names are case insensitive in the current OS, * the environment variable provider will remove the duplicates of the variables if their names * differ only by case * @deprecated use {@link IEnvironmentVariableProvider#getVariables(IConfiguration, boolean)} instead * - * @return the array of IBuildEnvironmentVariable that represents the environment variables + * @return the array of IBuildEnvironmentVariable that represents the environment variables */ @Deprecated - public IBuildEnvironmentVariable[] getVariables( - Object level, boolean includeParentLevels, boolean resolveMacros); - - public IEnvironmentVariable[] getVariables( - IConfiguration cfg, boolean resolveMacros); + public IBuildEnvironmentVariable[] getVariables(Object level, boolean includeParentLevels, boolean resolveMacros); /** + * Get variables for the given configuration, normally including those defined in project properties + * and workspace preferences. * + * See also {@code CCorePlugin.getDefault().getBuildEnvironmentManager().getVariables(ICConfigurationDescription cfg, boolean resolveMacros)} + * + * @param cfg - configuration or {@code null} for workspace preferences only. + * @param resolveMacros - if {@code true} expand macros, {@code false} otherwise. + * @return array of variables defined for the configuration or the workspace. + * Returns an empty array if no variables are defined. + */ + public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros); + + /** * @return the String representing default system delimiter. That is the ":" for Unix-like - * systems and the ";" for Win32 systems. This method will be used by the - * tool-integrator provided variable supplier e.g. in order to concatenate the list of paths into the + * systems and the ";" for Win32 systems. This method will be used by the + * tool-integrator provided variable supplier e.g. in order to concatenate the list of paths into the * environment variable, etc. */ public String getDefaultDelimiter(); /** - * @return true if the OS supports case sensitive variables (Unix-like systems) or false + * @return true if the OS supports case sensitive variables (Unix-like systems) or false * if it does not (Win32 systems) */ public boolean isVariableCaseSensitive(); @@ -97,29 +112,26 @@ public interface IEnvironmentVariableProvider{ /** - * returns the array of String that holds the build paths of the specified type + * @return the array of String that holds the build paths of the specified type + * * @param configuration represent the configuration for which the paths were changed - * @param buildPathType can be set to one of the IEnvVarBuildPath.BUILDPATH _xxx - * (the IEnvVarBuildPath will represent the build environment variables, see also + * @param buildPathType can be set to one of the IEnvVarBuildPath.BUILDPATH _xxx + * (the IEnvVarBuildPath will represent the build environment variables, see also * the "Specifying the Includes and Library paths environment variables", * the "envVarBuildPath schema" and the "Expected CDT/MBS code changes" sections) */ String[] getBuildPaths(IConfiguration configuration, int buildPathType); /** - * - * adds the listener that will return notifications about the include and library paths changes. + * adds the listener that will return notifications about the include and library paths changes. * The ManagedBuildManager will register the change listener and will notify all registered - * Scanned Info Change Listeners about the include paths change. - */ - void subscribe( - IEnvironmentBuildPathsChangeListener listener); + * Scanned Info Change Listeners about the include paths change. + */ + void subscribe(IEnvironmentBuildPathsChangeListener listener); /** - * - * removes the include and library paths change listener - */ - void unsubscribe( - IEnvironmentBuildPathsChangeListener listener); + * removes the include and library paths change listener + */ + void unsubscribe(IEnvironmentBuildPathsChangeListener listener); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java index a77661eecc6..a00a8fd4329 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java @@ -35,10 +35,8 @@ import org.eclipse.cdt.utils.envvar.EnvVarOperationProcessor; * build environment functionality to the MBS * * @since 3.0 - * */ -public class EnvironmentVariableProvider implements - IEnvironmentVariableProvider { +public class EnvironmentVariableProvider implements IEnvironmentVariableProvider { // private static final QualifiedName fBuildPathVarProperty = new QualifiedName(ManagedBuilderCorePlugin.getUniqueIdentifier(), "buildPathVar"); //$NON-NLS-1$ // private static final String DELIMITER_WIN32 = ";"; //$NON-NLS-1$ @@ -58,20 +56,17 @@ public class EnvironmentVariableProvider implements * paths from environment variable values * * @since 3.0 - * */ static public class DefaultBuildPathResolver implements IBuildPathResolver { private String fDelimiter; - public DefaultBuildPathResolver(String delimiter){ + public DefaultBuildPathResolver(String delimiter) { fDelimiter = delimiter; } @Override - public String[] resolveBuildPaths(int pathType, String variableName, - String variableValue, IConfiguration configuration) { - - if(fDelimiter == null || "".equals(fDelimiter)) //$NON-NLS-1$ + public String[] resolveBuildPaths(int pathType, String variableName, String variableValue, IConfiguration configuration) { + if (fDelimiter == null || "".equals(fDelimiter)) //$NON-NLS-1$ return new String[]{variableValue}; List list = EnvVarOperationProcessor.convertToList(variableValue,fDelimiter); @@ -80,46 +75,39 @@ public class EnvironmentVariableProvider implements } - protected EnvironmentVariableProvider(IEnvironmentVariableManager mngr){ + protected EnvironmentVariableProvider(IEnvironmentVariableManager mngr) { fMngr = mngr; } - public static EnvironmentVariableProvider getDefault(){ - if(fInstance == null){ + public static EnvironmentVariableProvider getDefault() { + if (fInstance == null) { fInstance = new EnvironmentVariableProvider(CCorePlugin.getDefault().getBuildEnvironmentManager()); fInstance.fBuildPathVarCheckAllowed = true; } return fInstance; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariable() - */ @Override - public IBuildEnvironmentVariable getVariable(String variableName, - Object level, boolean includeParentLevels, boolean resolveMacros) { - - if(variableName == null || "".equals(variableName)) //$NON-NLS-1$ + public IBuildEnvironmentVariable getVariable(String variableName, Object level, boolean includeParentLevels, boolean resolveMacros) { + if (variableName == null || "".equals(variableName)) //$NON-NLS-1$ return null; - if(level instanceof IConfiguration){ + if (level instanceof IConfiguration) { return wrap(getVariable(variableName, (IConfiguration)level, resolveMacros)); } return null; } @Override - public IEnvironmentVariable getVariable(String variableName, - IConfiguration cfg, boolean resolveMacros){ + public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros) { return getVariable(variableName, cfg, resolveMacros, true); } - public IEnvironmentVariable getVariable(String variableName, - IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths){ + public IEnvironmentVariable getVariable(String variableName, IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths) { ICConfigurationDescription des = ManagedBuildManager.getDescriptionForConfiguration(cfg); - if(des != null){ + if (des != null) { IEnvironmentVariable variable = fMngr.getVariable(variableName, des, resolveMacros); - if(checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed) + if (checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed) checkBuildPathVariable(cfg, variableName, variable); return variable; } @@ -127,130 +115,109 @@ public class EnvironmentVariableProvider implements } @Override - public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros){ + public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros) { return getVariables(cfg, resolveMacros, true); } - public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths){ + public IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros, boolean checkBuildPaths) { ICConfigurationDescription des = ManagedBuildManager.getDescriptionForConfiguration(cfg); - if(des != null){ + if (des != null) { IEnvironmentVariable vars[] = fMngr.getVariables(des, resolveMacros); - if(checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed) + if (checkBuildPaths && resolveMacros && fBuildPathVarCheckAllowed) checkBuildPathVariables(cfg,vars); return vars; } return new IBuildEnvironmentVariable[0]; } - public static IBuildEnvironmentVariable wrap(IEnvironmentVariable var){ - if(var == null) + public static IBuildEnvironmentVariable wrap(IEnvironmentVariable var) { + if (var == null) return null; - if(var instanceof IBuildEnvironmentVariable) + if (var instanceof IBuildEnvironmentVariable) return (IBuildEnvironmentVariable)var; return new BuildEnvVar(var); } - public static IBuildEnvironmentVariable[] wrap(IEnvironmentVariable vars[]){ - if(vars == null) + public static IBuildEnvironmentVariable[] wrap(IEnvironmentVariable vars[]) { + if (vars == null) return null; - if(vars instanceof IBuildEnvironmentVariable[]) + if (vars instanceof IBuildEnvironmentVariable[]) return (IBuildEnvironmentVariable[])vars; IBuildEnvironmentVariable[] buildVars = new IBuildEnvironmentVariable[vars.length]; - for(int i = 0; i < vars.length; i++){ + for(int i = 0; i < vars.length; i++) { buildVars[i] = wrap(vars[i]); } return buildVars; } -/* protected ICConfigurationDescription getDescription(IConfiguration cfg){ +/* protected ICConfigurationDescription getDescription(IConfiguration cfg) { IProject project = cfg.getOwner().getProject(); ICProjectDescription des = CoreModel.getDefault().getProjectDescription(project, false); - if(des != null){ + if (des != null) { return des.getConfigurationById(cfg.getId()); } return null; } */ - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariables() - */ @Override - public IBuildEnvironmentVariable[] getVariables(Object level, - boolean includeParentLevels, boolean resolveMacros) { - - if(level instanceof IConfiguration){ + public IBuildEnvironmentVariable[] getVariables(Object level, boolean includeParentLevels, boolean resolveMacros) { + if (level instanceof IConfiguration) { return wrap(getVariables((IConfiguration)level, resolveMacros)); } return new IBuildEnvironmentVariable[0]; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getDefaultDelimiter() - */ @Override public String getDefaultDelimiter() { return fMngr.getDefaultDelimiter(); } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#isVariableCaseSensitive() - */ @Override public boolean isVariableCaseSensitive() { return fMngr.isVariableCaseSensitive(); } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getSuppliers() - */ @Override public IEnvironmentVariableSupplier[] getSuppliers(Object level) { return null; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getBuildPaths() - */ @Override - public String[] getBuildPaths(IConfiguration configuration, - int buildPathType) { + public String[] getBuildPaths(IConfiguration configuration, int buildPathType) { ITool tools[] = configuration.getFilteredTools(); List list = new ArrayList(); - for(int i = 0; i < tools.length; i++){ - IEnvVarBuildPath pathDescriptors[] = tools[i].getEnvVarBuildPaths(); + for (ITool tool : tools) { + IEnvVarBuildPath pathDescriptors[] = tool.getEnvVarBuildPaths(); - if(pathDescriptors == null || pathDescriptors.length == 0) + if (pathDescriptors == null || pathDescriptors.length == 0) continue; - for(int j = 0; j < pathDescriptors.length; j++){ - IEnvVarBuildPath curPathDes = pathDescriptors[j]; - if(curPathDes.getType() != buildPathType) + for (IEnvVarBuildPath curPathDes : pathDescriptors) { + if (curPathDes.getType() != buildPathType) continue; String vars[] = curPathDes.getVariableNames(); - if(vars == null || vars.length == 0) + if (vars == null || vars.length == 0) continue; IBuildPathResolver pathResolver = curPathDes.getBuildPathResolver(); - if(pathResolver == null){ + if (pathResolver == null) { String delimiter = curPathDes.getPathDelimiter(); - if(delimiter == null) + if (delimiter == null) delimiter = getDefaultDelimiter(); pathResolver = new DefaultBuildPathResolver(delimiter); } - for(int k = 0; k < vars.length; k++){ - String varName = vars[k]; - + for (String varName : vars) { IEnvironmentVariable var = getVariable(varName,configuration,true, false); - if(var == null) + if (var == null) continue; String varValue = var.getValue(); String paths[] = pathResolver.resolveBuildPaths(buildPathType,varName,varValue,configuration); - if(paths != null && paths.length != 0) + if (paths != null && paths.length != 0) list.addAll(Arrays.asList(paths)); } } @@ -259,45 +226,39 @@ public class EnvironmentVariableProvider implements return list.toArray(new String[list.size()]); } - /* - * returns a list of registered listeners + /** + * @return a list of registered listeners */ - private List getListeners(){ - if(fListeners == null) + private List getListeners() { + if (fListeners == null) fListeners = new ArrayList(); return fListeners; } - /* + /** * notifies registered listeners */ - private void notifyListeners(IConfiguration configuration, int buildPathType){ + private void notifyListeners(IConfiguration configuration, int buildPathType) { List listeners = getListeners(); for (IEnvironmentBuildPathsChangeListener listener : listeners) { listener.buildPathsChanged(configuration,buildPathType); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#subscribe() - */ @Override public synchronized void subscribe(IEnvironmentBuildPathsChangeListener listener) { - if(listener == null) + if (listener == null) return; List listeners = getListeners(); - if(!listeners.contains(listener)) + if (!listeners.contains(listener)) listeners.add(listener); } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#unsubscribe() - */ @Override public synchronized void unsubscribe(IEnvironmentBuildPathsChangeListener listener) { - if(listener == null) + if (listener == null) return; List listeners = getListeners(); @@ -305,39 +266,39 @@ public class EnvironmentVariableProvider implements listeners.remove(listener); } - /* + /** * performs a check of the build path variables for the given configuration * If the build variables are changed, the notification is sent */ - public void checkBuildPathVariables(IConfiguration configuration){ + public void checkBuildPathVariables(IConfiguration configuration) { checkBuildPathVariables(configuration, getVariables(configuration ,true, false)); } - /* + /** * performs a check of the build path variables of the specified type * for the given configuration * If the build variables are changed, the notification is sent */ - public void checkBuildPathVariables(IConfiguration configuration,int buildPathType){ + public void checkBuildPathVariables(IConfiguration configuration,int buildPathType) { EnvVarCollector cr = new EnvVarCollector(); cr.add(getVariables(configuration, true, false)); checkBuildPathVariables(configuration,buildPathType,cr); } - /* + /** * performs a check of the build path variables * for the given configuration given the set of the variables * defined for this configuration * If the build variables are changed, the notification is sent */ - protected void checkBuildPathVariables(IConfiguration configuration, IEnvironmentVariable vars[]){ + protected void checkBuildPathVariables(IConfiguration configuration, IEnvironmentVariable vars[]) { EnvVarCollector cr = new EnvVarCollector(); cr.add(vars); checkBuildPathVariables(configuration,IEnvVarBuildPath.BUILDPATH_INCLUDE,cr); checkBuildPathVariables(configuration,IEnvVarBuildPath.BUILDPATH_LIBRARY,cr); } - /* + /** * performs a check of whether the given variable is the build path variable * and if true checks whether it is changed. * In the case of it is changed all other build path variables are checked @@ -345,12 +306,12 @@ public class EnvironmentVariableProvider implements * If it is not changed, other build path variables are not checked * In the case of the given variable is not the build path one, this method does nothing */ - protected void checkBuildPathVariable(IConfiguration configuration, String varName, IEnvironmentVariable var){ + protected void checkBuildPathVariable(IConfiguration configuration, String varName, IEnvironmentVariable var) { checkBuildPathVariable(configuration, IEnvVarBuildPath.BUILDPATH_INCLUDE, varName, var); checkBuildPathVariable(configuration, IEnvVarBuildPath.BUILDPATH_LIBRARY, varName, var); } - /* + /** * performs a check of whether the given variable is the build path variable * of the specified type and if true checks whether it is changed. * In the case of it is changed all other build path variables of that type are checked @@ -358,11 +319,11 @@ public class EnvironmentVariableProvider implements * If it is not changed, other build path variables are not checked * In the case of the given variable is not the build path one, this method does nothing */ - protected void checkBuildPathVariable(IConfiguration configuration, int buildPathType, String varName, IEnvironmentVariable var){ + protected void checkBuildPathVariable(IConfiguration configuration, int buildPathType, String varName, IEnvironmentVariable var) { StoredBuildPathEnvironmentContainer buildPathVars = getStoredBuildPathVariables(buildPathType); - if(buildPathVars == null) + if (buildPathVars == null) return; - if(buildPathVars.isVariableChanged(varName,var,configuration)){ + if (buildPathVars.isVariableChanged(varName,var,configuration)) { EnvVarCollector cr = new EnvVarCollector(); cr.add(getVariables(configuration, true, false)); buildPathVars.synchronize(cr,configuration); @@ -370,44 +331,44 @@ public class EnvironmentVariableProvider implements } } - /* + /** * performs a check of the build path variables of the specified type * for the given configuration given the set of the variables * defined for this configuration. * If the build variables are changed, the notification is sent */ - protected void checkBuildPathVariables(IConfiguration configuration, int buildPathType, EnvVarCollector varSet){ + protected void checkBuildPathVariables(IConfiguration configuration, int buildPathType, EnvVarCollector varSet) { StoredBuildPathEnvironmentContainer buildPathVars = getStoredBuildPathVariables(buildPathType); - if(buildPathVars == null) + if (buildPathVars == null) return; - if(buildPathVars.checkBuildPathChange(varSet,configuration)){ + if (buildPathVars.checkBuildPathChange(varSet,configuration)) { notifyListeners(configuration, buildPathType); } } - /* + /** * returns the container of the build variables of the specified type */ - protected StoredBuildPathEnvironmentContainer getStoredBuildPathVariables(int buildPathType){ + protected StoredBuildPathEnvironmentContainer getStoredBuildPathVariables(int buildPathType) { return buildPathType == IEnvVarBuildPath.BUILDPATH_LIBRARY ? getStoredLibraryBuildPathVariables() : getStoredIncludeBuildPathVariables(); } - /* + /** * returns the container of the Include path variables */ - protected StoredBuildPathEnvironmentContainer getStoredIncludeBuildPathVariables(){ - if(fIncludeStoredBuildPathVariables == null) + protected StoredBuildPathEnvironmentContainer getStoredIncludeBuildPathVariables() { + if (fIncludeStoredBuildPathVariables == null) fIncludeStoredBuildPathVariables = new StoredBuildPathEnvironmentContainer(IEnvVarBuildPath.BUILDPATH_INCLUDE); return fIncludeStoredBuildPathVariables; } - /* + /** * returns the container of the Library path variables */ - protected StoredBuildPathEnvironmentContainer getStoredLibraryBuildPathVariables(){ - if(fLibraryStoredBuildPathVariables == null) + protected StoredBuildPathEnvironmentContainer getStoredLibraryBuildPathVariables() { + if (fLibraryStoredBuildPathVariables == null) fLibraryStoredBuildPathVariables = new StoredBuildPathEnvironmentContainer(IEnvVarBuildPath.BUILDPATH_LIBRARY); return fLibraryStoredBuildPathVariables; } diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java index 9599f41fbb4..4460a4d7c76 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java @@ -63,16 +63,13 @@ public class CygwinPathResolver implements IBuildPathResolver { private static String rootCygwin = null; private static String etcCygwin = null; - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.core.IBuildPathResolver#resolveBuildPaths(int, java.lang.String, java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration) - */ @Override public String[] resolveBuildPaths(int pathType, String variableName, String variableValue, IConfiguration configuration) { - if(!isWindows()){ + if(!isWindows()) { return variableValue.split(DELIMITER_UNIX); - } else if(isMinGW(configuration)){ + } else if(isMinGW(configuration)) { return variableValue.split(DELIMITER_WIN); } @@ -92,7 +89,8 @@ public class CygwinPathResolver implements IBuildPathResolver { } return result; } - /* + + /** * returns "/etc" path in Windows format */ public static String getEtcPath() { @@ -100,17 +98,17 @@ public class CygwinPathResolver implements IBuildPathResolver { return etcCygwin; } - /* + /** * returns "/usr/bin" path in Windows format */ public static String getBinPath() { if (!checked) findPaths(); return binCygwin; } - /* + + /** * returns Cygwin root ("/") path in Windows format */ - public static String getRootPath() { if (!checked) findPaths(); return rootCygwin; @@ -140,6 +138,7 @@ public class CygwinPathResolver implements IBuildPathResolver { } return null; } + /** * Returns the absolute path of the pattern by * simply appending the pattern to the root @@ -233,7 +232,7 @@ public class CygwinPathResolver implements IBuildPathResolver { try { IEnvironmentVariable vars[] = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(cfg,true); String env[] = new String[vars.length]; - for(int i = 0; i < env.length; i++){ + for(int i = 0; i < env.length; i++) { env[i] = vars[i].getName() + "="; //$NON-NLS-1$ String value = vars[i].getValue(); if(value != null) @@ -258,10 +257,10 @@ public class CygwinPathResolver implements IBuildPathResolver { return null; } - public static boolean isMinGW(IConfiguration cfg){ + public static boolean isMinGW(IConfiguration cfg) { String versionInfo[] = exec(GCC_VERSION_CMD, cfg); if(versionInfo != null) { - for(int i = 0; i < versionInfo.length; i++){ + for(int i = 0; i < versionInfo.length; i++) { if(versionInfo[i].indexOf(MINGW_SPECIAL) != -1) return true; else if(versionInfo[i].indexOf(CYGWIN_SPECIAL) != -1) diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/GnuCygwinConfigurationEnvironmentSupplier.java b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/GnuCygwinConfigurationEnvironmentSupplier.java index dafa734e209..ae08fcf841d 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/GnuCygwinConfigurationEnvironmentSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/GnuCygwinConfigurationEnvironmentSupplier.java @@ -16,13 +16,10 @@ import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSu import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar; - /** * @noextend This class is not intended to be subclassed by clients. */ -public class GnuCygwinConfigurationEnvironmentSupplier implements - IConfigurationEnvironmentVariableSupplier { - +public class GnuCygwinConfigurationEnvironmentSupplier implements IConfigurationEnvironmentVariableSupplier { private static final String PATH = "PATH"; //$NON-NLS-1$ private static final String DELIMITER_UNIX = ":"; //$NON-NLS-1$ private static final String PROPERTY_DELIMITER = "path.separator"; //$NON-NLS-1$ @@ -32,53 +29,49 @@ public class GnuCygwinConfigurationEnvironmentSupplier implements private static final String LC_ALL = "LC_ALL"; //$NON-NLS-1$ private static final String LC_MESSAGES = "LC_MESSAGES"; //$NON-NLS-1$ - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariable(java.lang.String, org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider) - */ @Override - public IBuildEnvironmentVariable getVariable(String variableName, - IConfiguration configuration, IEnvironmentVariableProvider provider) { - - if (variableName == null) + public IBuildEnvironmentVariable getVariable(String variableName, IConfiguration configuration, IEnvironmentVariableProvider provider) { + if (variableName == null) { return null; + } - if (!System.getProperty(PROPERTY_OSNAME).toLowerCase().startsWith("windows ")) //$NON-NLS-1$ + if (!System.getProperty(PROPERTY_OSNAME).toLowerCase().startsWith("windows ")) { //$NON-NLS-1$ return null; - + } + if (variableName.equalsIgnoreCase(PATH)) { String p = CygwinPathResolver.getBinPath(); - if (p != null) + if (p != null) { return new BuildEnvVar(PATH, p.replace('/','\\'), IBuildEnvironmentVariable.ENVVAR_PREPEND, System.getProperty(PROPERTY_DELIMITER, DELIMITER_UNIX)); + } } else if (variableName.equalsIgnoreCase(LANG)) { // Workaround for not being able to select encoding for CDT console -> change codeset to Latin1 - String langValue = System.getenv(LANG); - if (langValue == null || langValue.length() == 0) + String langValue = System.getenv(LANG); + if (langValue == null || langValue.length() == 0) { langValue = System.getenv(LC_ALL); - if (langValue == null || langValue.length() == 0) + } + if (langValue == null || langValue.length() == 0) { langValue = System.getenv(LC_MESSAGES); - if (langValue != null && langValue.length() > 0) + } + if (langValue != null && langValue.length() > 0) { // langValue is [language[_territory][.codeset][@modifier]], i.e. "en_US.UTF-8@dict" // we replace codeset with Latin1 as CDT console garbles UTF // and ignore modifier which is not used by LANG langValue = langValue.replaceFirst("([^.@]*)(\\..*)?(@.*)?", "$1.ISO-8859-1"); //$NON-NLS-1$ //$NON-NLS-2$ - else + } else { langValue = "C.ISO-8859-1"; //$NON-NLS-1$ + } - return new BuildEnvVar(LANG, langValue); + return new BuildEnvVar(LANG, langValue); } return null; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier#getVariables(org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider) - */ @Override - public IBuildEnvironmentVariable[] getVariables( - IConfiguration configuration, IEnvironmentVariableProvider provider) { - + public IBuildEnvironmentVariable[] getVariables(IConfiguration configuration, IEnvironmentVariableProvider provider) { IBuildEnvironmentVariable varLang = getVariable(LANG, configuration, provider); IBuildEnvironmentVariable varPath = getVariable(PATH, configuration, provider); - + if (varPath != null) { return new IBuildEnvironmentVariable[] {varLang, varPath}; } else { diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/IsGnuCygwinToolChainSupported.java b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/IsGnuCygwinToolChainSupported.java index f3c9541db45..cf7d2816c2c 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/IsGnuCygwinToolChainSupported.java +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/IsGnuCygwinToolChainSupported.java @@ -32,24 +32,17 @@ import org.osgi.framework.Version; * * @noextend This class is not intended to be subclassed by clients. */ -public class IsGnuCygwinToolChainSupported implements - IManagedIsToolChainSupported { - +public class IsGnuCygwinToolChainSupported implements IManagedIsToolChainSupported { static final String[] CHECKED_NAMES = {"gcc", "binutils", "make"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ static boolean suppChecked = false; static boolean toolchainIsSupported = false; - - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported#isSupported(org.eclipse.cdt.managedbuilder.core.IToolChain, org.eclipse.core.runtime.PluginVersionIdentifier, java.lang.String) - */ /** * @since 8.0 */ @Override public boolean isSupported(IToolChain toolChain, Version version, String instance) { - if (suppChecked) return toolchainIsSupported; String etcCygwin = CygwinPathResolver.getEtcPath(); @@ -80,7 +73,9 @@ public class IsGnuCygwinToolChainSupported implements String s; while ((s = data.readLine()) != null ) { for (int j = 0; j < CHECKED_NAMES.length; j++) { - if (s.startsWith(CHECKED_NAMES[j])) {found[j] = true;} + if (s.startsWith(CHECKED_NAMES[j])) { + found[j] = true; + } } } arePackagesInstalled = true; diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/mingw/MingwEnvironmentVariableSupplier.java b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/mingw/MingwEnvironmentVariableSupplier.java index 940ca95cb59..65313653e39 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/mingw/MingwEnvironmentVariableSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/mingw/MingwEnvironmentVariableSupplier.java @@ -25,9 +25,7 @@ import org.eclipse.core.runtime.Platform; * * @noextend This class is not intended to be subclassed by clients. */ -public class MingwEnvironmentVariableSupplier implements - IConfigurationEnvironmentVariableSupplier { - +public class MingwEnvironmentVariableSupplier implements IConfigurationEnvironmentVariableSupplier { private static boolean checked = false; private static IPath binDir = null; diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java index 3afa4960024..98f8937bfb8 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java @@ -34,14 +34,11 @@ import org.eclipse.cdt.utils.envvar.EnvVarOperationProcessor; /** * This class implements the IEnvironmentVariableProvider interface and provides all - * build environment funvtionality to the MBS + * build environment functionality to the MBS * * @since 3.0 - * */ -public class EnvironmentVariableManager implements - IEnvironmentVariableManager { - +public class EnvironmentVariableManager implements IEnvironmentVariableManager { private static final String DELIMITER_WIN32 = ";"; //$NON-NLS-1$ private static final String DELIMITER_UNIX = ":"; //$NON-NLS-1$ @@ -57,23 +54,23 @@ public class EnvironmentVariableManager implements public class EnvVarVariableSubstitutor extends SupplierBasedCdtVariableSubstitutor { private String fDefaultDelimiter; -/* public EnvVarMacroSubstitutor(int contextType, Object contextData, String inexistentMacroValue, String listDelimiter){ +/* public EnvVarMacroSubstitutor(int contextType, Object contextData, String inexistentMacroValue, String listDelimiter) { super(contextType,contextData,inexistentMacroValue,listDelimiter); fDefaultDelimiter = listDelimiter; } */ - public EnvVarVariableSubstitutor(IVariableContextInfo contextInfo, String inexistentMacroValue, String listDelimiter){ + public EnvVarVariableSubstitutor(IVariableContextInfo contextInfo, String inexistentMacroValue, String listDelimiter) { super(contextInfo, inexistentMacroValue, listDelimiter, null ,inexistentMacroValue); fDefaultDelimiter = listDelimiter; } public IEnvironmentVariable resolveVariable(EnvVarDescriptor var) throws CdtVariableException { String value; - if(var == null || (value = var.getValue()) == null || value.length() == 0 || var.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE) + if (var == null || (value = var.getValue()) == null || value.length() == 0 || var.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE) return var; String listDelimiter = var.getDelimiter(); - if(listDelimiter == null) + if (listDelimiter == null) listDelimiter = fDefaultDelimiter; setListDelimiter(listDelimiter); ICdtVariable macro = EnvironmentVariableSupplier.getInstance().createBuildMacro(var); @@ -84,18 +81,18 @@ public class EnvironmentVariableManager implements return new EnvironmentVariable(var.getName(),value,var.getOperation(),var.getDelimiter()); } - protected IVariableContextInfo getVarMacroContextInfo(EnvVarDescriptor var){ + protected IVariableContextInfo getVarMacroContextInfo(EnvVarDescriptor var) { IEnvironmentContextInfo info = var.getContextInfo(); - if(info != null) + if (info != null) return getMacroContextInfoForContext(info.getContext()); return null; } - protected int getVarMacroSupplierNum(EnvVarDescriptor var, IVariableContextInfo varMacroInfo){ + protected int getVarMacroSupplierNum(EnvVarDescriptor var, IVariableContextInfo varMacroInfo) { int varSupplierNum = -1; ICdtVariableSupplier macroSuppliers[] = varMacroInfo.getSuppliers(); - for(int i = 0; i < macroSuppliers.length; i++){ - if(macroSuppliers[i] instanceof EnvironmentVariableSupplier){ + for(int i = 0; i < macroSuppliers.length; i++) { + if (macroSuppliers[i] instanceof EnvironmentVariableSupplier) { varSupplierNum = i; break; } @@ -104,42 +101,38 @@ public class EnvironmentVariableManager implements } } - protected EnvironmentVariableManager(){ + protected EnvironmentVariableManager() { fContributedEnvironment = new ContributedEnvironment(this); } - public static EnvironmentVariableManager getDefault(){ - if(fInstance == null) + public static EnvironmentVariableManager getDefault() { + if (fInstance == null) fInstance = new EnvironmentVariableManager(); return fInstance; } - /* - * returns a variable of a given name or null + /** + * @return a variable of a given name or null * the context information is taken from the contextInfo passed - * @see org.eclipse.cdt.managedbuilder.internal.envvar.IContextInfo */ - public static EnvVarDescriptor getVariable(String variableName, - IEnvironmentContextInfo contextInfo, boolean includeParentLevels){ - - if(contextInfo == null) + public static EnvVarDescriptor getVariable(String variableName, IEnvironmentContextInfo contextInfo, boolean includeParentLevels) { + if (contextInfo == null) return null; - if((variableName = EnvVarOperationProcessor.normalizeName(variableName)) == null) + if ((variableName = EnvVarOperationProcessor.normalizeName(variableName)) == null) return null; - IEnvironmentContextInfo infos[] = getAllContextInfos(contextInfo); - if(!includeParentLevels){ + if (!includeParentLevels) { ICoreEnvironmentVariableSupplier suppliers[] = infos[0].getSuppliers(); boolean bVarFound = false; for (ICoreEnvironmentVariableSupplier supplier : suppliers) { - if(supplier.getVariable(variableName,infos[0].getContext()) != null){ + if (supplier.getVariable(variableName,infos[0].getContext()) != null) { bVarFound = true; break; } } - if(!bVarFound) + if (!bVarFound) return null; } @@ -156,94 +149,88 @@ public class EnvironmentVariableManager implements ICoreEnvironmentVariableSupplier supplier = suppliers[j]; IEnvironmentVariable var = supplier.getVariable(variableName,info.getContext()); - if(var == null) + if (var == null) continue; varContextInfo = info; varSupplierNum = j; varSupplier = supplier; - if(variable == null) + if (variable == null) variable = var; else variable = EnvVarOperationProcessor.performOperation(variable,var); } } - if(variable != null){ -// if(variable.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE) + if (variable != null) { +// if (variable.getOperation() == IEnvironmentVariable.ENVVAR_REMOVE) // return null; return new EnvVarDescriptor(variable,varContextInfo,varSupplierNum,varSupplier); } return null; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariable() - */ @Override - public IEnvironmentVariable getVariable(String variableName, - ICConfigurationDescription cfg, boolean resolveMacros) { - if(variableName == null || "".equals(variableName)) //$NON-NLS-1$ + public IEnvironmentVariable getVariable(String variableName, ICConfigurationDescription cfg, boolean resolveMacros) { + if (variableName == null || "".equals(variableName)) //$NON-NLS-1$ return null; IEnvironmentContextInfo info = getContextInfo(cfg); EnvVarDescriptor var = getVariable(variableName,info,true); - if(var != null && var.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE){ + if (var != null && var.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE) { return resolveMacros ? calculateResolvedVariable(var,info) : var; } return null; } - IEnvironmentContextInfo getDefaultContextInfo(Object level){ + IEnvironmentContextInfo getDefaultContextInfo(Object level) { DefaultEnvironmentContextInfo info = new DefaultEnvironmentContextInfo(level); - if(info.getSuppliers() == null) + if (info.getSuppliers() == null) return null; return info; } - /* - * returns the context info that should be used for the given level + /** + * @return the context info that should be used for the given level * or null if the the given level is not supported */ - public IEnvironmentContextInfo getContextInfo(Object level){ - if(level instanceof ICConfigurationDescription) + public IEnvironmentContextInfo getContextInfo(Object level) { + if (level instanceof ICConfigurationDescription) return fContributedEnvironment.appendEnvironment((ICConfigurationDescription)level) ? getDefaultContextInfo(level) : fContributedEnvironment.getContextInfo(level); return getDefaultContextInfo(level); } - /* - * returns a list of defined variables. + /** + * @return a list of defined variables. * the context information is taken from the contextInfo passed - * @see org.eclipse.cdt.managedbuilder.internal.envvar.IContextInfo */ - public static EnvVarCollector getVariables(IEnvironmentContextInfo contextInfo, - boolean includeParentLevels) { - if(contextInfo == null) + public static EnvVarCollector getVariables(IEnvironmentContextInfo contextInfo, boolean includeParentLevels) { + if (contextInfo == null) return null; IEnvironmentContextInfo infos[] = getAllContextInfos(contextInfo); HashSet set = null; - if(!includeParentLevels){ + if (!includeParentLevels) { ICoreEnvironmentVariableSupplier suppliers[] = infos[0].getSuppliers(); set = new HashSet(); - for(int i = 0; i < suppliers.length; i++){ + for(int i = 0; i < suppliers.length; i++) { IEnvironmentVariable vars[] = suppliers[i].getVariables(infos[0].getContext()); - if(vars != null){ + if (vars != null) { for (IEnvironmentVariable var : vars) { String name = EnvVarOperationProcessor.normalizeName(var. getName()); - if(name != null) + if (name != null) set.add(name); } } - if(!suppliers[i].appendEnvironment(infos[0].getContext())) + if (!suppliers[i].appendEnvironment(infos[0].getContext())) break; } - if(set.size() == 0) + if (set.size() == 0) return new EnvVarCollector(); } @@ -255,18 +242,18 @@ public class EnvironmentVariableManager implements for(int j = suppliers.length-1 ; j >= 0 ; j-- ) { ICoreEnvironmentVariableSupplier supplier = suppliers[j]; - if(!supplier.appendEnvironment(info.getContext())){ + if (!supplier.appendEnvironment(info.getContext())) { envVarSet.clear(); } IEnvironmentVariable vars[] = null; - if(set != null){ + if (set != null) { List varList = new ArrayList(); Iterator iter = set.iterator(); - while(iter.hasNext()){ + while(iter.hasNext()) { IEnvironmentVariable var = supplier.getVariable(iter.next(),info.getContext()); - if(var != null) + if (var != null) varList.add(var); } vars = varList.toArray(new IEnvironmentVariable[varList.size()]); @@ -281,20 +268,15 @@ public class EnvironmentVariableManager implements return envVarSet; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getVariables() - */ @Override public IEnvironmentVariable[] getVariables(ICConfigurationDescription cfg, boolean resolveMacros) { - - IEnvironmentContextInfo info = getContextInfo(cfg); EnvVarCollector varSet = getVariables(info,true); EnvVarDescriptor vars[] = varSet != null ? varSet.toArray(false) : null; - if(vars != null){ - if(!resolveMacros) + if (vars != null) { + if (!resolveMacros) return vars; IEnvironmentVariable resolved[] = new IEnvironmentVariable[vars.length]; @@ -305,12 +287,12 @@ public class EnvironmentVariableManager implements return new EnvVarDescriptor[0]; } - /* - * returns an array of the IContextInfo that holds the context informations + /** + * @return an array of the IContextInfo that holds the context informations * starting from the one passed to this method and including all subsequent parents */ - public static IEnvironmentContextInfo[] getAllContextInfos(IEnvironmentContextInfo contextInfo){ - if(contextInfo == null) + public static IEnvironmentContextInfo[] getAllContextInfos(IEnvironmentContextInfo contextInfo) { + if (contextInfo == null) return null; List list = new ArrayList(); @@ -323,100 +305,91 @@ public class EnvironmentVariableManager implements return list.toArray(new IEnvironmentContextInfo[list.size()]); } - private boolean isWin32(){ + private boolean isWin32() { String os = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$ if (os.startsWith("windows ")) //$NON-NLS-1$ return true; return false; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getDefaultDelimiter() - */ @Override public String getDefaultDelimiter() { return isWin32() ? DELIMITER_WIN32 : DELIMITER_UNIX; } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#isVariableCaseSensitive() - */ @Override public boolean isVariableCaseSensitive() { return !isWin32(); } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider#getSuppliers() - */ public ICoreEnvironmentVariableSupplier[] getSuppliers(Object level) { IEnvironmentContextInfo info = getContextInfo(level); - if(info != null) + if (info != null) return info.getSuppliers(); return null; } - /* - * returns true if the first passed contextInfo is the child of the second one + /** + * @return true if the first passed contextInfo is the child of the second one */ - public boolean checkParentContextRelation(IEnvironmentContextInfo child, IEnvironmentContextInfo parent){ - if(child == null || parent == null) + public boolean checkParentContextRelation(IEnvironmentContextInfo child, IEnvironmentContextInfo parent) { + if (child == null || parent == null) return false; IEnvironmentContextInfo enumInfo = child; do{ - if(parent.getContext() == enumInfo.getContext()) + if (parent.getContext() == enumInfo.getContext()) return true; }while((enumInfo = enumInfo.getNext()) != null); return false; } - public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IEnvironmentContextInfo info){ - if(des == null || info == null) + public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IEnvironmentContextInfo info) { + if (des == null || info == null) return null; return calculateResolvedVariable(des,getVariableSubstitutor(getMacroContextInfoForContext(info.getContext()),""," ")); //$NON-NLS-1$ //$NON-NLS-2$ } - public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IVariableSubstitutor sub){ - if(des == null) + public IEnvironmentVariable calculateResolvedVariable(EnvVarDescriptor des, IVariableSubstitutor sub) { + if (des == null) return null; IEnvironmentVariable var = des; try{ - if(sub instanceof EnvVarVariableSubstitutor) + if (sub instanceof EnvVarVariableSubstitutor) var = ((EnvVarVariableSubstitutor)sub).resolveVariable(des); - else if(des.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE){ + else if (des.getOperation() != IEnvironmentVariable.ENVVAR_REMOVE) { String name = des.getName(); var = new EnvironmentVariable(name,sub.resolveToString(name),des.getOperation(),des.getDelimiter()); } - } catch (CdtVariableException e){ + } catch (CdtVariableException e) { } return var; } - protected int getMacroContextTypeFromContext(Object context){ - if(context instanceof ICConfigurationDescription) + protected int getMacroContextTypeFromContext(Object context) { + if (context instanceof ICConfigurationDescription) return ICoreVariableContextInfo.CONTEXT_CONFIGURATION; else return ICoreVariableContextInfo.CONTEXT_WORKSPACE; } - public ICoreVariableContextInfo getMacroContextInfoForContext(Object context){ + public ICoreVariableContextInfo getMacroContextInfoForContext(Object context) { return new DefaultVariableContextInfo(getMacroContextTypeFromContext(context),context); } - public IVariableSubstitutor getVariableSubstitutor(IVariableContextInfo info, String inexistentMacroValue, String listDelimiter){ + public IVariableSubstitutor getVariableSubstitutor(IVariableContextInfo info, String inexistentMacroValue, String listDelimiter) { return new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter); -// if(fVariableSubstitutor == null) +// if (fVariableSubstitutor == null) // fVariableSubstitutor = new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter); // else { // try { // fVariableSubstitutor.setMacroContextInfo(info); // fVariableSubstitutor.setInexistentMacroValue(inexistentMacroValue); // fVariableSubstitutor.setListDelimiter(listDelimiter); -// } catch (CdtVariableException e){ +// } catch (CdtVariableException e) { // fVariableSubstitutor = new EnvVarVariableSubstitutor(info,inexistentMacroValue,listDelimiter); // } // } @@ -428,5 +401,4 @@ public class EnvironmentVariableManager implements return fContributedEnvironment; } - } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java index 98457612b79..73152183612 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java @@ -75,43 +75,43 @@ public class UserDefinedEnvironmentSupplier extends private boolean fNameOnly; private int fCode; - VarKey(IEnvironmentVariable var, boolean nameOnly){ + VarKey(IEnvironmentVariable var, boolean nameOnly) { fVar = var; fNameOnly = nameOnly; } - public IEnvironmentVariable getVariable(){ + public IEnvironmentVariable getVariable() { return fVar; } @Override public boolean equals(Object obj) { - if(obj == this) + if (obj == this) return true; - if(!(obj instanceof VarKey)) + if (!(obj instanceof VarKey)) return false; VarKey other = (VarKey)obj; IEnvironmentVariable otherVar = other.fVar; - if(fVar == otherVar) + if (fVar == otherVar) return true; - if(!CDataUtil.objectsEqual(fVar.getName(), otherVar.getName())) + if (!CDataUtil.objectsEqual(fVar.getName(), otherVar.getName())) return false; - if(fNameOnly) + if (fNameOnly) return true; - if(fVar.getOperation() != otherVar.getOperation()) + if (fVar.getOperation() != otherVar.getOperation()) return false; - if(!CDataUtil.objectsEqual(fVar.getValue(), otherVar.getValue())) + if (!CDataUtil.objectsEqual(fVar.getValue(), otherVar.getValue())) return false; - if(!CDataUtil.objectsEqual(fVar.getDelimiter(),otherVar.getDelimiter())) + if (!CDataUtil.objectsEqual(fVar.getDelimiter(),otherVar.getDelimiter())) return false; return true; @@ -120,24 +120,24 @@ public class UserDefinedEnvironmentSupplier extends @Override public int hashCode() { int code = fCode; - if(code == 0){ + if (code == 0) { code = 47; String tmp = fVar.getName(); - if(tmp != null) + if (tmp != null) code += tmp.hashCode(); - if(fNameOnly) + if (fNameOnly) return code; code += fVar.getOperation(); tmp = fVar.getValue(); - if(tmp != null) + if (tmp != null) code += tmp.hashCode(); tmp = fVar.getDelimiter(); - if(tmp != null) + if (tmp != null) code += tmp.hashCode(); fCode = code; @@ -146,20 +146,20 @@ public class UserDefinedEnvironmentSupplier extends } } - public StorableEnvironment getEnvironment(Object context){ + public StorableEnvironment getEnvironment(Object context) { return getEnvironment(context,true); } - protected StorableEnvironment getEnvironment(Object context, boolean forceLoad){ -// if(context == null) + protected StorableEnvironment getEnvironment(Object context, boolean forceLoad) { +// if (context == null) // return null; StorableEnvironment env = null; - if(context instanceof IInternalCCfgInfo){ + if (context instanceof IInternalCCfgInfo) { try { CConfigurationSpecSettings settings = ((IInternalCCfgInfo)context).getSpecSettings(); env = settings.getEnvironment(); - if(env == null && forceLoad){ + if (env == null && forceLoad) { env = loadEnvironment(context, settings.isReadOnly()); settings.setEnvironment(env); } @@ -167,8 +167,8 @@ public class UserDefinedEnvironmentSupplier extends CCorePlugin.log(e); } } - else if(context instanceof IWorkspace || context == null){ - if(fWorkspaceVariables == null && forceLoad) + else if (context instanceof IWorkspace || context == null) { + if (fWorkspaceVariables == null && forceLoad) fWorkspaceVariables = loadEnvironment(context, false); env = fWorkspaceVariables; } @@ -177,37 +177,37 @@ public class UserDefinedEnvironmentSupplier extends } @Override - protected ISerializeInfo getSerializeInfo(Object context){ + protected ISerializeInfo getSerializeInfo(Object context) { ISerializeInfo serializeInfo = null; - if(context instanceof ICConfigurationDescription){ + if (context instanceof ICConfigurationDescription) { final ICConfigurationDescription cfg = (ICConfigurationDescription)context; final String name = cfg.getId(); - if(name != null) - serializeInfo = new ISerializeInfo(){ + if (name != null) + serializeInfo = new ISerializeInfo() { @Override - public Preferences getNode(){ + public Preferences getNode() { return getConfigurationNode(cfg.getProjectDescription()); } @Override - public String getPrefName(){ + public String getPrefName() { return name; } }; } - else if(context == null || context instanceof IWorkspace){ + else if (context == null || context instanceof IWorkspace) { final Preferences prefs = getWorkspaceNode(); final String name = PREFNAME_WORKSPACE; if (prefs != null) - serializeInfo = new ISerializeInfo(){ + serializeInfo = new ISerializeInfo() { @Override - public Preferences getNode(){ + public Preferences getNode() { return prefs; } @Override - public String getPrefName(){ + public String getPrefName() { return name; } }; @@ -215,74 +215,74 @@ public class UserDefinedEnvironmentSupplier extends return serializeInfo; } - private Preferences getConfigurationNode(ICProjectDescription projDes){ + private Preferences getConfigurationNode(ICProjectDescription projDes) { Preferences prefNode = getProjectNode(projDes); - if(prefNode == null) + if (prefNode == null) return null; return prefNode.node(NODENAME_CFG); } - private Preferences getProjectNode(ICProjectDescription projDes){ - if(projDes == null) + private Preferences getProjectNode(ICProjectDescription projDes) { + if (projDes == null) return null; IProject project = projDes.getProject(); - if(!project.exists()) + if (!project.exists()) return null; Preferences prefNode = new ProjectScope(project).getNode(CCorePlugin.PLUGIN_ID); - if(prefNode == null) + if (prefNode == null) return null; return prefNode.node(NODENAME); } - private Preferences getWorkspaceNode(){ + private Preferences getWorkspaceNode() { Preferences prefNode = new InstanceScope().getNode(CCorePlugin.PLUGIN_ID); - if(prefNode == null) + if (prefNode == null) return null; return prefNode.node(NODENAME); } - public void checkInexistentConfigurations(ICProjectDescription projDes){ + public void checkInexistentConfigurations(ICProjectDescription projDes) { Preferences prefNode = getConfigurationNode(projDes); - if(prefNode == null) + if (prefNode == null) return; try{ String ids[] = prefNode.keys(); boolean found = false; for (String id : ids) { - if(projDes.getConfigurationById(id) == null){ + if (projDes.getConfigurationById(id) == null) { prefNode.remove(id); found = true; } } - if(found) + if (found) prefNode.flush(); } - catch(BackingStoreException e){ + catch(BackingStoreException e) { } } - public void storeWorkspaceEnvironment(boolean force){ - if(fWorkspaceVariables != null){ + public void storeWorkspaceEnvironment(boolean force) { + if (fWorkspaceVariables != null) { try{ storeEnvironment(fWorkspaceVariables,ResourcesPlugin.getWorkspace(),force, true); - } catch(CoreException e){ + } catch(CoreException e) { } } } - public StorableEnvironment getWorkspaceEnvironmentCopy(){ + public StorableEnvironment getWorkspaceEnvironmentCopy() { StorableEnvironment envVar = getEnvironment(null); return new StorableEnvironment(envVar, false); } - public boolean setWorkspaceEnvironment(StorableEnvironment env){ + public boolean setWorkspaceEnvironment(StorableEnvironment env) { StorableEnvironment oldEnv = getEnvironment(null); fWorkspaceVariables = new StorableEnvironment(env, false); @@ -296,13 +296,13 @@ public class UserDefinedEnvironmentSupplier extends return event != null; } - static EnvironmentChangeEvent createEnvironmentChangeEvent(IEnvironmentVariable[] newVars, IEnvironmentVariable[] oldVars){ + static EnvironmentChangeEvent createEnvironmentChangeEvent(IEnvironmentVariable[] newVars, IEnvironmentVariable[] oldVars) { IEnvironmentVariable[] addedVars = null, removedVars = null, changedVars = null; - if(oldVars == null || oldVars.length == 0){ - if(newVars != null && newVars.length != 0) + if (oldVars == null || oldVars.length == 0) { + if (newVars != null && newVars.length != 0) addedVars = newVars.clone(); - } else if(newVars == null || newVars.length == 0){ + } else if (newVars == null || newVars.length == 0) { removedVars = oldVars.clone(); } else { HashSet newSet = new HashSet(newVars.length); @@ -322,11 +322,11 @@ public class UserDefinedEnvironmentSupplier extends newSet.removeAll(oldSet); oldSet.removeAll(newSetCopy); - if(newSet.size() != 0){ + if (newSet.size() != 0) { addedVars = varsFromKeySet(newSet); } - if(oldSet.size() != 0){ + if (oldSet.size() != 0) { removedVars = varsFromKeySet(oldSet); } @@ -341,19 +341,19 @@ public class UserDefinedEnvironmentSupplier extends modifiedSet.remove(new VarKey(oldVar, false)); } - if(modifiedSet.size() != 0) + if (modifiedSet.size() != 0) changedVars = varsFromKeySet(modifiedSet); } - if(addedVars != null || removedVars != null || changedVars != null) + if (addedVars != null || removedVars != null || changedVars != null) return new EnvironmentChangeEvent(addedVars, removedVars, changedVars); return null; } - static IEnvironmentVariable[] varsFromKeySet(Set set){ + static IEnvironmentVariable[] varsFromKeySet(Set set) { IEnvironmentVariable vars[] = new IEnvironmentVariable[set.size()]; int i = 0; - for(Iterator iter = set.iterator(); iter.hasNext(); i++){ + for(Iterator iter = set.iterator(); iter.hasNext(); i++) { VarKey key = iter.next(); vars[i] = key.getVariable(); } @@ -362,7 +362,7 @@ public class UserDefinedEnvironmentSupplier extends } - public void storeProjectEnvironment(ICProjectDescription des, boolean force){ + public void storeProjectEnvironment(ICProjectDescription des, boolean force) { ICConfigurationDescription cfgs[] = des.getConfigurations(); for (ICConfigurationDescription cfg : cfgs) { storeEnvironment(cfg, force, false); @@ -375,9 +375,9 @@ public class UserDefinedEnvironmentSupplier extends } } - private void storeEnvironment(Object context, boolean force, boolean flush){ + private void storeEnvironment(Object context, boolean force, boolean flush) { StorableEnvironment env = getEnvironment(context, false); - if(env != null){ + if (env != null) { try { storeEnvironment(env, context, force, flush); } catch (CoreException e) { @@ -385,12 +385,9 @@ public class UserDefinedEnvironmentSupplier extends } } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableSupplier#getVariable() - */ @Override public IEnvironmentVariable getVariable(String name, Object context) { - if(getValidName(name) == null) + if (getValidName(name) == null) return null; IEnvironmentVariable var = fOverrideVariables.getVariable(name); StorableEnvironment env = getEnvironment(context); @@ -399,13 +396,10 @@ public class UserDefinedEnvironmentSupplier extends return EnvVarOperationProcessor.performOperation(env.getVariable(name), var); } - /* (non-Javadoc) - * @see org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableSupplier#getVariables() - */ @Override public IEnvironmentVariable[] getVariables(Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return null; IEnvironmentVariable[] override = filterVariables(fOverrideVariables.getVariables()); IEnvironmentVariable[] normal = filterVariables(env.getVariables()); @@ -442,88 +436,88 @@ public class UserDefinedEnvironmentSupplier extends return fOverrideVariables.createVariable(name,value,op,delimiter); } - public IEnvironmentVariable createVariable(String name, String value, int op, String delimiter, Object context){ - if(getValidName(name) == null) + public IEnvironmentVariable createVariable(String name, String value, int op, String delimiter, Object context) { + if (getValidName(name) == null) return null; StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return null; IEnvironmentVariable var = env.createVariable(name,value,op,delimiter); - if(env.isChanged()){ + if (env.isChanged()) { // updateProjectInfo(context); env.setChanged(false); } return var; } - public IEnvironmentVariable deleteVariable(String name, Object context){ + public IEnvironmentVariable deleteVariable(String name, Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return null; IEnvironmentVariable var = env.deleteVariable(name); - if(var != null){ + if (var != null) { // updateProjectInfo(context); } return var; } - public void deleteAll(Object context){ + public void deleteAll(Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return; - if(env.deleteAll()){ + if (env.deleteAll()) { // updateProjectInfo(context); } } - public void setVariables(IEnvironmentVariable vars[], Object context){ + public void setVariables(IEnvironmentVariable vars[], Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return; env.setVariales(vars); - if(env.isChanged()){ + if (env.isChanged()) { // updateProjectInfo(context); env.setChanged(false); } } -// protected void updateProjectInfo(Object context){ +// protected void updateProjectInfo(Object context) { // } -// protected void cfgVarsModified(ICConfigurationDescription cfg){ +// protected void cfgVarsModified(ICConfigurationDescription cfg) { // cfg.setRebuildState(true); // EnvironmentVariableProvider.getDefault().checkBuildPathVariables(cfg); // } - protected String getValidName(String name){ - if(name == null || (name = name.trim()).length() == 0) + protected String getValidName(String name) { + if (name == null || (name = name.trim()).length() == 0) return null; -// if(fNonOverloadableVariables != null){ -// for(int i = 0; i < fNonOverloadableVariables.length; i++){ -// if(fNonOverloadableVariables[i].equals(EnvVarOperationProcessor.normalizeName(name))) +// if (fNonOverloadableVariables != null) { +// for(int i = 0; i < fNonOverloadableVariables.length; i++) { +// if (fNonOverloadableVariables[i].equals(EnvVarOperationProcessor.normalizeName(name))) // return null; // } // } return name; } - protected IEnvironmentVariable[] filterVariables(IEnvironmentVariable variables[]){ + protected IEnvironmentVariable[] filterVariables(IEnvironmentVariable variables[]) { return EnvVarOperationProcessor.filterVariables(variables,null); } @Override public boolean appendEnvironment(Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return true; return env.appendEnvironment(); } - public boolean appendContributedEnvironment(Object context){ + public boolean appendContributedEnvironment(Object context) { StorableEnvironment env = getEnvironment(context); - if(env == null) + if (env == null) return true; return env.appendContributedEnvironment(); } @@ -531,21 +525,21 @@ public class UserDefinedEnvironmentSupplier extends public void setAppendEnvironment(boolean append, Object context) { StorableEnvironment env = getEnvironment(context); - if(env != null){ + if (env != null) { env.setAppendEnvironment(append); } } - public void setAppendContributedEnvironment(boolean append, Object context){ + public void setAppendContributedEnvironment(boolean append, Object context) { StorableEnvironment env = getEnvironment(context); - if(env != null){ + if (env != null) { env.setAppendContributedEnvironment(append); } } - public void restoreDefaults(Object context){ + public void restoreDefaults(Object context) { StorableEnvironment env = getEnvironment(context); - if(env != null){ + if (env != null) { env.restoreDefaults(); } }