mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-09 18:15:23 +02:00
[162081] Fix runtime ClassCastException
This commit is contained in:
parent
dd4c4ae10d
commit
c6ff411efd
1 changed files with 9 additions and 17 deletions
|
@ -77,23 +77,12 @@ public class SubSystemConfigurationProxy implements ISubSystemConfigurationProxy
|
||||||
// only by the null value of the field configuration.
|
// only by the null value of the field configuration.
|
||||||
private boolean subSystemConfigurationInitialized = false;
|
private boolean subSystemConfigurationInitialized = false;
|
||||||
|
|
||||||
private final ISystemTypeMatcher systemTypeMatcher;
|
private final SystemTypeMatcher systemTypeMatcher;
|
||||||
|
|
||||||
// Internal classes encapsulating the logic to match the declared system types against
|
// Internal classes encapsulating the logic to match the declared system types against
|
||||||
// a specific given one.
|
// a specific given one.
|
||||||
|
|
||||||
private static interface ISystemTypeMatcher {
|
private final class SystemTypeMatcher {
|
||||||
/**
|
|
||||||
* Checks if the specified system type is matched by this pattern.
|
|
||||||
*/
|
|
||||||
public boolean matches(IRSESystemType systemType);
|
|
||||||
/**
|
|
||||||
* @return true if this matcher supports all system types.
|
|
||||||
*/
|
|
||||||
public boolean supportsAllSystemTypes();
|
|
||||||
}
|
|
||||||
|
|
||||||
private final class SystemTypeMatcher implements ISystemTypeMatcher {
|
|
||||||
private final class SystemTypeIdPattern {
|
private final class SystemTypeIdPattern {
|
||||||
private final Pattern pattern;
|
private final Pattern pattern;
|
||||||
|
|
||||||
|
@ -114,7 +103,7 @@ public class SubSystemConfigurationProxy implements ISubSystemConfigurationProxy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// List of patterns to match. The order is preserved. Names comes before ids.
|
// List of patterns to match. The order is preserved.
|
||||||
private final List patterns = new LinkedList();
|
private final List patterns = new LinkedList();
|
||||||
private boolean matchAllTypes = false;
|
private boolean matchAllTypes = false;
|
||||||
|
|
||||||
|
@ -152,19 +141,22 @@ public class SubSystemConfigurationProxy implements ISubSystemConfigurationProxy
|
||||||
return translated;
|
return translated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if this matcher supports all system types.
|
||||||
|
*/
|
||||||
public boolean supportsAllSystemTypes() {
|
public boolean supportsAllSystemTypes() {
|
||||||
return matchAllTypes;
|
return matchAllTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/**
|
||||||
* @see org.eclipse.rse.core.internal.subsystems.SubSystemConfigurationProxy.ISystemTypeMatcher#matches(org.eclipse.rse.core.IRSESystemType)
|
* Checks if the specified system type is matched by this pattern.
|
||||||
*/
|
*/
|
||||||
public boolean matches(IRSESystemType systemType) {
|
public boolean matches(IRSESystemType systemType) {
|
||||||
assert systemType != null;
|
assert systemType != null;
|
||||||
if (matchAllTypes) return true;
|
if (matchAllTypes) return true;
|
||||||
Iterator iterator = patterns.iterator();
|
Iterator iterator = patterns.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
ISystemTypeMatcher matcher = (ISystemTypeMatcher)iterator.next();
|
SystemTypeIdPattern matcher = (SystemTypeIdPattern)iterator.next();
|
||||||
if (matcher.matches(systemType)) return true;
|
if (matcher.matches(systemType)) return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue