diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/filters/SystemFilterSimple.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/filters/SystemFilterSimple.java index b39522df810..71248a4e105 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/filters/SystemFilterSimple.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/filters/SystemFilterSimple.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2002, 2007 IBM Corporation and others. + * Copyright (c) 2002, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,17 +12,21 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * {Name} (company) - description of contribution. + * David Dykstal (IBM) - [206901] fixing ArrayStoreException in getPersistableChildren + * Fix involved removing visibility for data referenced in SystemFilter. Addressed + * that by modifying the implementation of SystemFilterSimple to use its own data. *******************************************************************************/ package org.eclipse.rse.core.filters; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Vector; import org.eclipse.core.resources.IFile; import org.eclipse.rse.core.model.ISystemContainer; import org.eclipse.rse.core.model.ISystemContentsType; -import org.eclipse.rse.internal.core.filters.ISystemFilterConstants; import org.eclipse.rse.internal.core.filters.SystemFilter; @@ -49,17 +53,14 @@ import org.eclipse.rse.internal.core.filters.SystemFilter; public class SystemFilterSimple extends SystemFilter implements ISystemContainer { - private String name = null; - private String type = ISystemFilterConstants.DEFAULT_TYPE; - private boolean caseSensitive = false; - private boolean promptable = false; - private Object parent; - // the following are inherited... - //private String[] filterStringArray = null; - //private SystemFilterString[] filterStringObjectArray = null; - //private Vector filterStringVector = null; - protected boolean isStale; - protected HashMap cachedContents; + private String name = null; + private String type = null; + private boolean caseSensitive = false; + private boolean promptable = false; + private Object parent; + private boolean isStale; + private List filterStrings = new ArrayList(3); + private HashMap cachedContents; /** * Constructor for SystemFilterSimpleImpl @@ -68,17 +69,17 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { //super(); this.name = name; - filterStringVector = new Vector(); +// filterStringVector = new Vector(); isStale = true; cachedContents = new HashMap(); } - protected void invalidateCache() - { - filterStringArray = null; - filterStringObjectArray = null; - //filterStringVector = null; - } +// protected void invalidateCache() +// { +// filterStringArray = null; +// filterStringObjectArray = null; +// //filterStringVector = null; +// } /** * Return true if this a transient or simple filter that is only created temporary "on the fly" @@ -99,8 +100,6 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer public void clone(ISystemFilter targetFilter) { super.clone(targetFilter); - // hmm, due to polymorphism, we should not have to do anything here! - // well, except for this: targetFilter.setFilterStrings(getFilterStringsVector()); } @@ -114,20 +113,24 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer */ public void setFilterString(String filterString) { - filterStringVector.clear(); - filterStringVector.addElement(filterString); - invalidateCache(); + filterStrings.clear(); + filterStrings.add(filterString); +// filterStringVector.clear(); +// filterStringVector.addElement(filterString); +// invalidateCache(); } /** - * Get the single filter string. + * Get the single (or the first) filter string. * Returns null if setFilterString has not been called. */ public String getFilterString() { - if (filterStringVector.size() == 0) - return null; - else - return (String)filterStringVector.elementAt(0); + String result = filterStrings.isEmpty() ? null : (String)filterStrings.get(0); + return result; +// if (filterStringVector.size() == 0) +// return null; +// else +// return (String)filterStringVector.elementAt(0); } /** @@ -158,6 +161,7 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { this.name = name; } + /** * Get the filter's name */ @@ -165,6 +169,7 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { return name; } + /** * Set the filter's type */ @@ -172,6 +177,7 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { this.type = type; } + /** * Get the filter's type */ @@ -179,6 +185,7 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { return type; } + /** * Specify if filter strings in this filter are case sensitive. * Default is false. @@ -196,6 +203,7 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer { return caseSensitive; } + /** * Are filter strings in this filter case sensitive? */ @@ -224,72 +232,91 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer */ public String[] getFilterStrings() { - if (filterStringArray == null) - { - filterStringArray = new String[filterStringVector.size()]; - for (int idx=0; idx 0); + return filterStrings.size() > 0; +// return (filterStringVector.size() > 0); } + + // --------------------- + // methods needed by ISystemFilter + // --------------------- + // ------------------------------------------------------- // Non-applicable methods overridden to do nothing... @@ -348,30 +385,36 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer * Overridden to do nothing */ public void setSupportsNestedFilters(boolean value) {} + /** * Does this support nested filters? No. Not for simple filtes. */ public boolean supportsNestedFilters() {return false;} + /** * Return true if this filter is a nested filter or not. * Overridden to return false; */ public boolean isNested() { return false; } + /** * Update a new filter string's string value. * Overridden to do nothing. */ public void updateFilterString(ISystemFilterString filterString, String newValue) {} + /** * Remove a filter string from this filter's list, given its SystemFilterString object. * Overridden to do nothing */ public boolean removeFilterString(ISystemFilterString filterString) {return false;} + /** * Move a given filter string to a given zero-based location. * Overridden to do nothing */ public void moveSystemFilterString(int pos, ISystemFilterString filterString) {} + /** * Overridden to do nothing */ @@ -381,66 +424,82 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer * Overridden to return -1 */ public int getRelativeOrder() { return -1; } + /** * Overridden to do nothing */ public void setDefault(boolean value) {} + /** * Overridden to return false */ public boolean isDefault() {return false; } + /** * Overridden to do nothing */ public void setParentFilter(ISystemFilter l) {} + /** * Overridden to return null */ public ISystemFilter getParentFilter() {return null;} + /** * Overridden to return null */ public Vector getSystemFilterNames() {return null;} + /** * Overridden to return null */ public java.util.List getNestedFilters() {return null;} + /** * Overridden to return null */ public Vector getSystemFiltersVector() {return null;} + /** * Overridden to return null */ public ISystemFilter[] getSystemFilters() {return null;} + /** * Overridden to return 0 */ public int getSystemFilterCount() {return 0;} + /** * Overridden to return null */ public java.util.List getStrings() {return null;} + /** * Overridden to return null */ public ISystemFilter getSystemFilter(String aliasName) {return null;} + /** * Overridden to return null */ public ISystemFilterPoolManagerProvider getProvider() {return null;} + /** * Overridden to return null */ public ISystemFilterPoolManager getSystemFilterPoolManager() {return null;} + /** * Overridden to return null */ public IFile getSaveFile() {return null;} + /** * Overridden to return null */ public String getSaveFileName() {return null;} + /** * Overridden to do nothing */ @@ -466,12 +525,10 @@ public class SystemFilterSimple extends SystemFilter implements ISystemContainer /** * @see org.eclipse.rse.core.model.ISystemContainer#hasContents(org.eclipse.rse.core.model.ISystemContentsType) */ - public boolean hasContents(ISystemContentsType contentsType) { - + public boolean hasContents(ISystemContentsType contentsType) { if (cachedContents.containsKey(contentsType)) { return true; - } - + } return false; } diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/filters/SystemFilter.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/filters/SystemFilter.java index fac3b9a7865..24e9f9976d1 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/filters/SystemFilter.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/core/filters/SystemFilter.java @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved. + * Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved. * This program and the accompanying materials are made available under the terms * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html @@ -13,6 +13,9 @@ * Contributors: * David Dykstal (IBM) - 142806: refactoring persistence framework * Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType + * David Dykstal (IBM) - [206901] fixing ArrayStoreException in getPersistableChildren + * Removed caching that was here because of previous EMF/MOF implementation. This makes + * the class simpler. ********************************************************************************/ package org.eclipse.rse.internal.core.filters; @@ -36,251 +39,43 @@ import org.eclipse.rse.core.filters.ISystemFilterString; import org.eclipse.rse.core.filters.SystemFilterSimple; import org.eclipse.rse.core.model.IRSEPersistableContainer; import org.eclipse.rse.core.model.ISystemProfile; -import org.eclipse.rse.core.references.IRSEReferencedObject; import org.eclipse.rse.internal.core.RSECoreMessages; import org.eclipse.rse.internal.references.SystemReferencedObject; /** - * A filter is an encapsulation of a unique name, and a list - * of filter strings. + * A filter is an encapsulation of a unique name, and a list of filter strings. * Filters can be referenced. */ /** * @lastgen class SystemFilterImpl extends SystemReferencedObjectImpl implements SystemFilter, SystemReferencedObject, SystemFilterContainer, IAdaptable {} */ -public class SystemFilter extends SystemReferencedObject implements ISystemFilter, IRSEReferencedObject, IAdaptable +public class SystemFilter extends SystemReferencedObject implements ISystemFilter, IAdaptable { - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - private SystemFilterContainerCommonMethods helpers = null; - private ISystemFilterPool parentPool = null; - protected String[] filterStringArray = null; - protected ISystemFilterString[] filterStringObjectArray = null; - protected Vector filterStringVector = null; - - //protected static String SAVEFILE_PREFIX = DEFAULT_FILENAME_PREFIX_FILTER; - //protected static String SAVEFILE_SUFFIX = ".xmi"; - protected static boolean debug = true; - /** - * @generated This field/method will be replaced during code generation. - */ - /** - * @generated This field/method will be replaced during code generation. - */ - protected String name = NAME_EDEFAULT; - /** - * The default value of the '{@link #getType() Type}' attribute. - * - * - * @see #getType() - * @generated - * @ordered - */ - protected static final String TYPE_EDEFAULT = null; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected String type = TYPE_EDEFAULT; - /** - * The default value of the '{@link #isSupportsNestedFilters() Supports Nested Filters}' attribute. - * - * - * @see #isSupportsNestedFilters() - * @generated - * @ordered - */ - protected static final boolean SUPPORTS_NESTED_FILTERS_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean supportsNestedFilters = SUPPORTS_NESTED_FILTERS_EDEFAULT; - /** - * The default value of the '{@link #getRelativeOrder() Relative Order}' attribute. - * - * - * @see #getRelativeOrder() - * @generated - * @ordered - */ - protected static final int RELATIVE_ORDER_EDEFAULT = 0; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected int relativeOrder = RELATIVE_ORDER_EDEFAULT; - /** - * The default value of the '{@link #isDefault() Default}' attribute. - * - * - * @see #isDefault() - * @generated - * @ordered - */ - protected static final boolean DEFAULT_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean default_ = DEFAULT_EDEFAULT; - /** - * The default value of the '{@link #isStringsCaseSensitive() Strings Case Sensitive}' attribute. - * - * - * @see #isStringsCaseSensitive() - * @generated - * @ordered - */ - protected static final boolean STRINGS_CASE_SENSITIVE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean stringsCaseSensitive = STRINGS_CASE_SENSITIVE_EDEFAULT; - /** - * The default value of the '{@link #isPromptable() Promptable}' attribute. - * - * - * @see #isPromptable() - * @generated - * @ordered - */ - protected static final boolean PROMPTABLE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean promptable = PROMPTABLE_EDEFAULT; - /** - * The default value of the '{@link #isSupportsDuplicateFilterStrings() Supports Duplicate Filter Strings}' attribute. - * - * - * @see #isSupportsDuplicateFilterStrings() - * @generated - * @ordered - */ - protected static final boolean SUPPORTS_DUPLICATE_FILTER_STRINGS_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean supportsDuplicateFilterStrings = SUPPORTS_DUPLICATE_FILTER_STRINGS_EDEFAULT; - /** - * The default value of the '{@link #isNonDeletable() Non Deletable}' attribute. - * - * - * @see #isNonDeletable() - * @generated - * @ordered - */ - protected static final boolean NON_DELETABLE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean nonDeletable = NON_DELETABLE_EDEFAULT; - /** - * The default value of the '{@link #isNonRenamable() Non Renamable}' attribute. - * - * - * @see #isNonRenamable() - * @generated - * @ordered - */ - protected static final boolean NON_RENAMABLE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean nonRenamable = NON_RENAMABLE_EDEFAULT; - /** - * The default value of the '{@link #isNonChangable() Non Changable}' attribute. - * - * - * @see #isNonChangable() - * @generated - * @ordered - */ - protected static final boolean NON_CHANGABLE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean nonChangable = NON_CHANGABLE_EDEFAULT; - /** - * The default value of the '{@link #isStringsNonChangable() Strings Non Changable}' attribute. - * - * - * @see #isStringsNonChangable() - * @generated - * @ordered - */ - protected static final boolean STRINGS_NON_CHANGABLE_EDEFAULT = false; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected boolean stringsNonChangable = STRINGS_NON_CHANGABLE_EDEFAULT; - /** - * The default value of the '{@link #getRelease() Release}' attribute. - * - * - * @see #getRelease() - * @generated - * @ordered - */ - protected static final int RELEASE_EDEFAULT = 0; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected int release = RELEASE_EDEFAULT; - /** - * The default value of the '{@link #isSingleFilterStringOnly() Single Filter String Only}' attribute. - * - * - * @see #isSingleFilterStringOnly() - * @generated - * @ordered - */ - protected static final boolean SINGLE_FILTER_STRING_ONLY_EDEFAULT = false; - - /** - * The cached value of the '{@link #isSingleFilterStringOnly() Single Filter String Only}' attribute. - * - * - * @see #isSingleFilterStringOnly() - * @generated - * @ordered - */ - protected boolean singleFilterStringOnly = SINGLE_FILTER_STRING_ONLY_EDEFAULT; - - /** - * @generated This field/method will be replaced during code generation. - */ - protected java.util.List nestedFilters = null; - /** - * @generated This field/method will be replaced during code generation. - */ - protected java.util.List strings = null; + private ISystemFilterPool parentPool = null; + private List filterStrings = new ArrayList(3); + private String name = null; + private String type = null; + private boolean supportsNestedFilters = false; + private int relativeOrder = 0; + private boolean default_ = false; + private boolean stringsCaseSensitive = false; + private boolean promptable = false; + private boolean supportsDuplicateFilterStrings = false; + private boolean nonDeletable = false; + private boolean nonRenamable = false; + private boolean nonChangable = false; + private boolean stringsNonChangable = false; + private int release = 0; + private boolean singleFilterStringOnly = false; + private List nestedFilters = new ArrayList(3); +// private List strings = null; + private ISystemFilter _parentFilter; - - // FIXME - protected ISystemFilter _parentFilter; - -/** - * Constructor. Do not instantiate directly, let MOF do it! + /** + * Constructor. */ protected SystemFilter() { @@ -290,7 +85,7 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte /* * Private internal way to get filters. Makes it easy to change in future, if we don't use MOF. */ - protected java.util.List internalGetFilters() + private List internalGetFilters() { return getNestedFilters(); } @@ -353,7 +148,7 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte */ public void initializeFilterStrings() { - java.util.List filterStrings = getStrings(); + List filterStrings = getStrings(); Iterator i = filterStrings.iterator(); while (i.hasNext()) ((ISystemFilterString)i.next()).setParentSystemFilter(this); @@ -613,64 +408,87 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte * Internal way to return emf-modelled list of filter strings. * We use this so we can easily change to non-mof if we decide to. */ - private java.util.List internalGetFilterStrings() - { - return getStrings(); - } +// private List internalGetFilterStrings() +// { +// return getStrings(); +// } /** * Clear internal cache so it will be rebuilt on next request. */ - protected void invalidateCache() - { - filterStringArray = null; - filterStringObjectArray = null; - filterStringVector = null; - setDirty(true); - } +// protected void invalidateCache() +// { +// filterStringArray = null; +// filterStringObjectArray = null; +// filterStringVector = null; +// setDirty(true); +// } /** - * Return filter strings as an array of String objects. + * Returns the filter strings of this filter as an array of String objects. + * The array may be empty but will not be null. */ - public String[] getFilterStrings() - { - if (filterStringArray == null) - { - java.util.List el = internalGetFilterStrings(); - filterStringArray = new String[el.size()]; - Iterator i = el.iterator(); - int idx = 0; - while (i.hasNext()) - filterStringArray[idx++] = ((ISystemFilterString)(i.next())).getString(); - } - return filterStringArray; + public String[] getFilterStrings() { + ISystemFilterString[] filterStrings = getSystemFilterStrings(); + String[] result = new String[filterStrings.length]; + for (int i = 0; i < filterStrings.length; i++) { + ISystemFilterString filterString = filterStrings[i]; + result[i] = filterString.getString(); + } + return result; } +// public String[] getFilterStrings() +// { +// if (filterStringArray == null) +// { +// List el = internalGetFilterStrings(); +// filterStringArray = new String[el.size()]; +// Iterator i = el.iterator(); +// int idx = 0; +// while (i.hasNext()) +// filterStringArray[idx++] = ((ISystemFilterString)(i.next())).getString(); +// } +// return filterStringArray; +// } + /** - * Return filter strings as a Vector of String objects + * Return filter strings as a Vector of String objects. + * This vector may be empty but will never be null. */ - public Vector getFilterStringsVector() - { - if (filterStringVector == null) - { - java.util.List el = internalGetFilterStrings(); - Iterator i = el.iterator(); - filterStringVector = new Vector(); - while (i.hasNext()) - filterStringVector.addElement(((ISystemFilterString)(i.next())).getString()); - } - return filterStringVector; + public Vector getFilterStringsVector() { + String[] strings = getFilterStrings(); + List stringList = Arrays.asList(strings); + Vector result = new Vector(stringList); + return result; } +// public Vector getFilterStringsVector() +// { +// if (filterStringVector == null) +// { +// List el = internalGetFilterStrings(); +// Iterator i = el.iterator(); +// filterStringVector = new Vector(); +// while (i.hasNext()) +// filterStringVector.addElement(((ISystemFilterString)(i.next())).getString()); +// } +// return filterStringVector; +// } + /** * Get this filter's filter strings as a Vector of FilterString objects */ public Vector getFilterStringObjectsVector() { - java.util.List el = internalGetFilterStrings(); - Iterator i = el.iterator(); - Vector filterStringVector = new Vector(); - while (i.hasNext()) - filterStringVector.addElement(i.next()); - return filterStringVector; + Vector result = new Vector(filterStrings.size()); + result.addAll(filterStrings); + return result; +// +// List el = internalGetFilterStrings(); +// Iterator i = el.iterator(); +// Vector filterStringVector = new Vector(); +// while (i.hasNext()) +// filterStringVector.addElement(i.next()); +// return filterStringVector; } /** @@ -678,8 +496,10 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte */ public int getFilterStringCount() { - return internalGetFilterStrings().size(); + return filterStrings.size(); +// return internalGetFilterStrings().size(); } + /** * Get a filter string given its string value */ @@ -706,55 +526,73 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte } return match; } + /** * Set all the filter strings for this filter. * @param newStrings Vector of String objects */ public void setFilterStrings(Vector newStrings) { - java.util.List strings = internalGetFilterStrings(); - strings.clear(); - for (int idx=0; idx= strings.size()) - return null; - ISystemFilterString filterString = (ISystemFilterString)strings.get(position); - strings.remove(position); - invalidateCache(); +// List strings = internalGetFilterStrings(); + ISystemFilterString filterString = null; + if (position < filterStrings.size()) { + filterString = (ISystemFilterString)filterStrings.remove(position); + setDirty(true); + } +// invalidateCache(); return filterString; } @@ -838,23 +683,35 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte */ public boolean removeFilterString(ISystemFilterString filterString) { - java.util.List strings = internalGetFilterStrings(); - if (strings.contains(filterString)) - { - strings.remove(filterString); - invalidateCache(); - return true; +// List strings = internalGetFilterStrings(); + boolean removed = filterStrings.remove(filterString); + if (removed) { + setDirty(true); } - else - return false; + return removed; +// if (strings.contains(filterString)) +// { +// strings.remove(filterString); +//// invalidateCache(); +// return true; +// } +// else +// return false; } + /** * Move a given filter string to a given zero-based location */ public void moveSystemFilterString(int pos, ISystemFilterString filterString) { +// List strings = internalGetFilterStrings(); + boolean removed = filterStrings.remove(filterString); + if (removed) { + filterStrings.add(pos, filterString); + setDirty(true); + } //FIXME internalGetFilterStrings().move(pos,filterString); - invalidateCache(); +// invalidateCache(); } /** @@ -900,7 +757,7 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte */ public boolean hasChildren() { - if (internalGetFilterStrings().size() > 0) + if (filterStrings.size() > 0) return true; else return helpers.hasSystemFilters(internalGetFilters()); @@ -954,7 +811,7 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte /* FIXME String fileName = getRootSaveFileName(namingPolicy, name); - java.util.List ext = mofHelpers.restore(folder,fileName); + List ext = mofHelpers.restore(folder,fileName); // should be exactly one... Iterator iList = ext.iterator(); @@ -1118,12 +975,16 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte */ public void unsetStringsCaseSensitive() { - boolean oldStringsCaseSensitive = stringsCaseSensitive; - if (oldStringsCaseSensitive != STRINGS_CASE_SENSITIVE_EDEFAULT) - { - stringsCaseSensitive = STRINGS_CASE_SENSITIVE_EDEFAULT; + if (stringsCaseSensitive) { + stringsCaseSensitive = false; setDirty(true); } +// boolean oldStringsCaseSensitive = stringsCaseSensitive; +// if (oldStringsCaseSensitive != STRINGS_CASE_SENSITIVE_EDEFAULT) +// { +// stringsCaseSensitive = STRINGS_CASE_SENSITIVE_EDEFAULT; +// setDirty(true); +// } } /** @@ -1189,7 +1050,7 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte /** * @generated This field/method will be replaced during code generation */ - public java.util.List getNestedFilters() + public List getNestedFilters() { if (nestedFilters == null) { @@ -1202,14 +1063,14 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte /** * @generated This field/method will be replaced during code generation */ - public java.util.List getStrings() + public List getStrings() { - if (strings == null) - { - strings = new ArrayList(); - //FIXME new EObjectContainmenteList(SystemFilterString.class, this, FiltersPackage.SYSTEM_FILTER__STRINGS); - } - return strings; +// if (filterStrings == null) +// { +// filterStrings = new ArrayList(); +// //FIXME new EObjectContainmenteList(SystemFilterString.class, this, FiltersPackage.SYSTEM_FILTER__STRINGS); +// } + return filterStrings; } /** @@ -1352,13 +1213,17 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte public void unsetSingleFilterStringOnly() { - boolean oldSingleFilterStringOnly = singleFilterStringOnly; - if (oldSingleFilterStringOnly != SINGLE_FILTER_STRING_ONLY_EDEFAULT) - { - singleFilterStringOnly = SINGLE_FILTER_STRING_ONLY_EDEFAULT; + if (singleFilterStringOnly) { + singleFilterStringOnly = false; setDirty(true); } - +// boolean oldSingleFilterStringOnly = singleFilterStringOnly; +// if (oldSingleFilterStringOnly != SINGLE_FILTER_STRING_ONLY_EDEFAULT) +// { +// singleFilterStringOnly = SINGLE_FILTER_STRING_ONLY_EDEFAULT; +// setDirty(true); +// } +// } public boolean isSetSingleFilterStringOnly() @@ -1380,12 +1245,9 @@ public class SystemFilter extends SystemReferencedObject implements ISystemFilte public IRSEPersistableContainer[] getPersistableChildren() { List children = new ArrayList(20); - if (nestedFilters != null) { - children.addAll(nestedFilters); - } - if (filterStringVector != null) { - children.addAll(filterStringVector); - } + List nf = getNestedFilters(); // guaranteed to not be null, none of these should be simple filters + children.addAll(nf); + children.addAll(filterStrings); children.addAll(Arrays.asList(getPropertySets())); IRSEPersistableContainer[] result = new IRSEPersistableContainer[children.size()]; children.toArray(result);