From: Benjamin B. <bg...@us...> - 2005-08-10 07:19:47
|
Update of /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30788/Plugin/com/ibm/ecute/rsa/core/internal/properties Modified Files: QualifiersPropertySection.java CheckAndRepair.java FlavorsHelper.java Log Message: disableOverride qualifiers check and repair complete Index: FlavorsHelper.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/FlavorsHelper.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- FlavorsHelper.java 5 Aug 2005 13:44:07 -0000 1.8 +++ FlavorsHelper.java 10 Aug 2005 07:19:39 -0000 1.9 @@ -344,7 +344,7 @@ private ArrayList getOverrideAttributes(Class class_){ ArrayList overrideAttributes = new ArrayList(); - List classAttributes = class_.getAttributes(); + List classAttributes = class_.getOwnedAttributes(); for(int i = 0; i < classAttributes.size(); i++){ Property classAttribute = (Property)classAttributes.get(i); if(overrides(classAttribute) != null){ @@ -432,8 +432,135 @@ return null; } + private static boolean disableOverrideSetFirstTime(NamedElement element, Qualifier qualifier){ + boolean isSetFirstTime = true; + String qualifierValue = null; + + if(qualifierValue(element, qualifier) == null){ + return true; + } else { + qualifierValue = qualifierValue(element, qualifier); + } + + // element has no parents + if(element instanceof Class && ((Class)element).getGenerals().size() == 0){ + if(qualifierValue.equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } else { + return true; + } + } + else if((element instanceof Property || element instanceof Operation) && + canOverride(element) == null){ + if(qualifierValue.equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } else { + return true; + } + } + else if(element instanceof Parameter && canOverride((Operation)element.getOwner()) == null){ + if(qualifierValue.equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } else { + return true; + } + } + + // element has parents + ArrayList parentClasses = getParentClasses(element); + if(element instanceof Class && ((Class)element).getGenerals().size() != 0){ + for(int i = 0; i < parentClasses.size(); i++){ + Class class_ = (Class)parentClasses.get(i); + if(!qualifierValue(class_, qualifier).equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } + } + return true; + } + else if((element instanceof Property || element instanceof Operation) && + canOverride(element) != null){ + if(element instanceof Property){ + Property currentProperty = (Property)element; + while(canOverride(currentProperty) != null){ + Property parentProperty = (Property)canOverride(currentProperty); + if(!qualifierValue(parentProperty, qualifier).equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } + currentProperty = parentProperty; + } + return true; + } + else if(element instanceof Operation){ + Operation currentOperation = (Operation)element; + while(canOverride(currentOperation) != null){ + Operation parentOperation = (Operation)canOverride(currentOperation); + if(!qualifierValue(parentOperation, qualifier).equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } + currentOperation = parentOperation; + } + return true; + } + } + else if(element instanceof Parameter && canOverride((Operation)element.getOwner()) != null){ + Parameter currentParameter = (Parameter)element; + while(canOverride((Operation)currentParameter.getOwner()) != null){ + Operation parentOperation = (Operation)canOverride((Operation)currentParameter.getOwner()); + if(!qualifierValue(parentOperation.getOwnedParameter(currentParameter.getName()), qualifier).equalsIgnoreCase(qualifier.defaultValue)){ + return false; + } + currentParameter = parentOperation.getOwnedParameter(((Parameter)element).getName()); + } + return true; + } + + return isSetFirstTime; + } + + public static NamedElement canOverride(NamedElement element){ + + ArrayList parentClasses = getParentClasses(element); + + if(element instanceof Property){ + Property property = (Property)element; + for(int i = 0; i < parentClasses.size(); i++){ + if(property.getOwner() instanceof Class && + ((Class)parentClasses.get(i)).getOwnedAttribute(property.getName()) != null){ + return ((Class)parentClasses.get(i)).getOwnedAttribute(property.getName()); + } + if(property.getOwner() instanceof AssociationClass && + ((AssociationClass)parentClasses.get(i)).getOwnedEnd(property.getName()) != null){ + return ((AssociationClass)parentClasses.get(i)).getOwnedEnd(property.getName()); + } + } + } else if(element instanceof Operation){ + Operation operation = (Operation)element; + for(int i = 0; i < parentClasses.size(); i++){ + if(((Class)parentClasses.get(i)).getOwnedOperation(operation.getName()) != null && + equalMethods(operation,((Class)parentClasses.get(i)).getOwnedOperation(operation.getName()))){ + return ((Class)parentClasses.get(i)).getOwnedOperation(operation.getName()); + } + } + + } + + return null; + } + public static EffectiveInheritedValue effectiveInheritedValue(NamedElement element, String qualifierName){ + // element has no parents + if(element instanceof Class && ((Class)element).getGenerals().size() == 0){ + return null; + } + else if((element instanceof Property || element instanceof Operation) && + canOverride(element) == null){ + return null; + } + else if(element instanceof Parameter && canOverride((Operation)element.getOwner()) == null){ + return null; + } + // ABSTRACT if(qualifierName.equalsIgnoreCase("Abstract")){ return null; @@ -547,7 +674,7 @@ String description = null; Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -721,10 +848,14 @@ if(qualifierName.equalsIgnoreCase("In")){ if(direct.equalsIgnoreCase("in") || direct.equalsIgnoreCase("inout")){ return(new EffectiveInheritedValue("true", (Class)parents.get(j))); + } else { + return(new EffectiveInheritedValue("false", (Class)parents.get(j))); } } else { if(direct.equalsIgnoreCase("out") || direct.equalsIgnoreCase("inout")){ return(new EffectiveInheritedValue("true", (Class)parents.get(j))); + } else { + return(new EffectiveInheritedValue("false", (Class)parents.get(j))); } } } @@ -748,7 +879,7 @@ for(int j = 0; j < parents.size(); j++){ Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -829,7 +960,7 @@ for(int j = 0; j < parents.size(); j++){ Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -951,7 +1082,7 @@ for(int j = 0; j < parents.size(); j++){ Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -959,23 +1090,11 @@ } if(attribute != null){ - if(override(attribute) || !override(attribute) && j == parents.size()-1){ - if(attribute.isStatic()){ - return(new EffectiveInheritedValue("true", (Class)parents.get(j))); - } else { - return(new EffectiveInheritedValue("false", (Class)parents.get(j))); - } - } - if(!override(attribute) && j != parents.size()-1){ - return null; + if(attribute.isStatic()){ + return(new EffectiveInheritedValue("true", (Class)parents.get(j))); + } else { + return(new EffectiveInheritedValue("false", (Class)parents.get(j))); } - -// if(attribute.isStatic()){ -// return(new EffectiveInheritedValue("true", (Class)parents.get(j))); -// } -// if(!override(attribute) && j != parents.size()-1){ -// return null; -// } } } @@ -995,9 +1114,8 @@ if(method != null && equalMethods(operation, method)){ if(method.isStatic()){ return(new EffectiveInheritedValue("true", (Class)parents.get(j))); - } - if(!override(method) && j != parents.size()-1){ - return null; + } else { + return(new EffectiveInheritedValue("false", (Class)parents.get(j))); } } } @@ -1018,7 +1136,7 @@ for(int j = 0; j < parents.size(); j++){ Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -1065,7 +1183,7 @@ String description = null; Property attribute = null; - List attributeList = ((Class)parents.get(j)).getAttributes(); + List attributeList = ((Class)parents.get(j)).getOwnedAttributes(); for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); @@ -1330,7 +1448,7 @@ else if(qualifierName.equalsIgnoreCase("In")){ if(element instanceof Parameter){ ParameterDirectionKind kind = ((Parameter)element).getDirection(); - if(kind.getValue() == ParameterDirectionKind.IN || kind.getValue() == ParameterDirectionKind.INOUT){ + if(kind == ParameterDirectionKind.IN_LITERAL || kind == ParameterDirectionKind.INOUT_LITERAL){ return "true"; } else { return "false"; @@ -1343,7 +1461,7 @@ else if(qualifierName.equalsIgnoreCase("Out")){ if(element instanceof Parameter){ ParameterDirectionKind kind = ((Parameter)element).getDirection(); - if(kind.getValue() == ParameterDirectionKind.OUT || kind.getValue() == ParameterDirectionKind.INOUT){ + if(kind == ParameterDirectionKind.OUT_LITERAL || kind == ParameterDirectionKind.INOUT_LITERAL){ return "true"; } else { return "false"; @@ -1583,19 +1701,39 @@ boolean removed = false; for(int i = 0; i < applicableQualifiers.size(); i++){ if(removed){ + applicableQualifiers.remove(i-1); i--; removed = false; } + Qualifier qualifier = (Qualifier)applicableQualifiers.get(i); - if(qualifier.RestrictedFlavor){ - applicableQualifiers.remove(i); + + // remove non native qualifiers + if(!isNativeMappedQualifier(qualifier)){ + //applicableQualifiers.remove(i); + removed = true; + } + + // remove qualifiers with Restricted flavor + else if(qualifier.RestrictedFlavor){ + //applicableQualifiers.remove(i); removed = true; } // remove qualifiers with Enable ToSubclass flavor - if(skipEnableOverride && !qualifier.DissableOverrideFlavor && !qualifier.RestrictedFlavor){ - applicableQualifiers.remove(i); + else if(skipEnableOverride && !qualifier.DissableOverrideFlavor && !qualifier.RestrictedFlavor){ + //applicableQualifiers.remove(i); removed = true; } + // remove DisableOverride qualifiers which are set for the first time + else if(disableOverrideSetFirstTime(element, qualifier)){ + //applicableQualifiers.remove(i); + removed = true; + } + } + // remove the last applicable qualifier + if(removed){ + int index = applicableQualifiers.size()-1; + applicableQualifiers.remove(index); } boolean isComposition = false; @@ -1697,31 +1835,36 @@ } if(element instanceof Class){ + FlavorsHelper helper = new FlavorsHelper(model); Class class_ = (Class)element; // apply native inherited values for class attributes List properties = class_.getOwnedAttributes(); for(int i = 0; i < properties.size(); i++){ - applyNativeInheritedValues((Property)properties.get(i), true); + helper.applyNativeInheritedValues((Property)properties.get(i), true); } // apply native inherited values for class methods List methods = class_.getOwnedOperations(); for(int i = 0; i < methods.size(); i++){ - applyNativeInheritedValues((Operation)methods.get(i), true); + helper.applyNativeInheritedValues((Operation)methods.get(i), true); } } if(element instanceof AssociationClass){ + FlavorsHelper helper = new FlavorsHelper(model); AssociationClass aClass = (AssociationClass)element; List ownedEnds = aClass.getOwnedEnds(); for(int i = 0; i < ownedEnds.size(); i++){ - applyNativeInheritedValues((Property)ownedEnds.get(i), true); + helper.applyNativeInheritedValues((Property)ownedEnds.get(i), true); } - } else if(element instanceof Operation){ + } + + if(element instanceof Operation){ + FlavorsHelper helper = new FlavorsHelper(model); Operation operation = (Operation)element; List parameters = operation.getOwnedParameters(); for(int i = 0; i < parameters.size(); i++){ - applyNativeInheritedValues((Parameter)parameters.get(i), true); + helper.applyNativeInheritedValues((Parameter)parameters.get(i), true); } } } @@ -1799,19 +1942,37 @@ if(parameter.getDirection() == ParameterDirectionKind.OUT_LITERAL){ parameter.setDirection(ParameterDirectionKind.INOUT_LITERAL); } else if(parameter.getDirection() == ParameterDirectionKind.IN_LITERAL){ - // do nothing + parameter.setDirection(ParameterDirectionKind.IN_LITERAL); } else if(parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL){ - // do nothing + parameter.setDirection(ParameterDirectionKind.INOUT_LITERAL); } - } else if(newValue.equalsIgnoreCase("true") && qualifierName.equalsIgnoreCase("Out")){ + } else if(newValue.equalsIgnoreCase("false") && qualifierName.equalsIgnoreCase("In")){ if(parameter.getDirection() == ParameterDirectionKind.OUT_LITERAL){ - // do nothing + parameter.setDirection(ParameterDirectionKind.OUT_LITERAL); } else if(parameter.getDirection() == ParameterDirectionKind.IN_LITERAL){ parameter.setDirection(ParameterDirectionKind.OUT_LITERAL); } else if(parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL){ + parameter.setDirection(ParameterDirectionKind.OUT_LITERAL); + } + + } else if(newValue.equalsIgnoreCase("true") && qualifierName.equalsIgnoreCase("Out")){ + if(parameter.getDirection() == ParameterDirectionKind.OUT_LITERAL){ + parameter.setDirection(ParameterDirectionKind.OUT_LITERAL); + } else if(parameter.getDirection() == ParameterDirectionKind.IN_LITERAL){ + parameter.setDirection(ParameterDirectionKind.INOUT_LITERAL); + } else if(parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL){ // do nothing } + + } else if(newValue.equalsIgnoreCase("false") && qualifierName.equalsIgnoreCase("Out")){ + if(parameter.getDirection() == ParameterDirectionKind.OUT_LITERAL){ + parameter.setDirection(ParameterDirectionKind.IN_LITERAL); + } else if(parameter.getDirection() == ParameterDirectionKind.IN_LITERAL){ + parameter.setDirection(ParameterDirectionKind.IN_LITERAL); + } else if(parameter.getDirection() == ParameterDirectionKind.INOUT_LITERAL){ + parameter.setDirection(ParameterDirectionKind.IN_LITERAL); + } } Index: CheckAndRepair.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/CheckAndRepair.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- CheckAndRepair.java 5 Aug 2005 13:44:07 -0000 1.3 +++ CheckAndRepair.java 10 Aug 2005 07:19:39 -0000 1.4 @@ -3,9 +3,12 @@ */ package com.ibm.ecute.rsa.core.internal.properties; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.uml2.AssociationClass; import org.eclipse.uml2.Class; import org.eclipse.uml2.Model; @@ -14,10 +17,14 @@ import org.eclipse.uml2.Package; import org.eclipse.uml2.Parameter; import org.eclipse.uml2.Property; +import org.eclipse.uml2.Stereotype; import com.ibm.ecute.Qualifiers.Qualifier; import com.ibm.ecute.rsa.core.internal.dialogs.ProgressLogDialog; import com.ibm.ecute.utils.License; +import com.ibm.xtools.emf.msl.EditingDomain; +import com.ibm.xtools.emf.msl.ResourceSetModifyOperation; +import com.ibm.xtools.modeler.UMLModeler; /** * Copyright (c) 2005, International Business Machines @@ -47,13 +54,12 @@ } public void checkAll(ProgressLogDialog frame){ - //applyAllNativeInheritedValues(frame); checkDisableOverrideQualifiers(frame); } public void checkAndRepairAll(ProgressLogDialog frame){ applyAllNativeInheritedValues(frame); - //checkDisableOverrideQualifiers(frame); + checkAndRepairDisableOverrideQualifiers(frame); } public void applyAllNativeInheritedValues(ProgressLogDialog frame){ @@ -73,7 +79,7 @@ } - public void checkDisableOverrideQualifiers(ProgressLogDialog frame){ + private void checkDisableOverrideQualifiers(ProgressLogDialog frame){ frame.addLine2Log("***************************************************************************"); frame.addLine2Log("Checking ToSubclass DisableOverride qualifiers"); @@ -99,25 +105,75 @@ } // check classes - checkDisableOverrideClasses(frame, modelBaseClasses, orderedModelClasses); + checkDisableOverrideClasses(frame, modelBaseClasses, orderedModelClasses, false); // check associationClasses - checkDisableOverrideAssociationClasses(frame, modelBaseAssociationClasses, orderedModelClasses); + checkDisableOverrideAssociationClasses(frame, modelBaseAssociationClasses, orderedModelClasses, false); // check references - checkDisableOverrideReferences(frame, orderedModelClasses); + checkDisableOverrideReferences(frame, orderedModelClasses, false); // check properties - checkDisableOverrideProperties(frame, orderedModelClasses); + checkDisableOverrideProperties(frame, orderedModelClasses, false); // check methods - checkDisableOverrideMethods(frame, orderedModelClasses); + checkDisableOverrideMethods(frame, orderedModelClasses, false); // check parameters - checkDisableOverrideParameters(frame, orderedModelClasses); + checkDisableOverrideParameters(frame, orderedModelClasses, false); frame.addLine2Log(""); - frame.addLine2Log("--> DisableOverride test complete"); + frame.addLine2Log("--> DisableOverride check complete"); + frame.addLine2Log(""); + frame.addLine2Log("***************************************************************************"); + } + + + private void checkAndRepairDisableOverrideQualifiers(ProgressLogDialog frame){ + + frame.addLine2Log("***************************************************************************"); + frame.addLine2Log("Repairing ToSubclass DisableOverride qualifiers"); + frame.addLine2Log("---------------------------------------------------------"); + + // get all model base classes + ArrayList orderedModelClasses = getOrderedModelClasses(); + ArrayList modelBaseClasses = new ArrayList(); + for(int i = 0; i < orderedModelClasses.size(); i++){ + Class tempClass = (Class)orderedModelClasses.get(i); + if(tempClass.getGenerals().size() == 0){ + modelBaseClasses.add(tempClass); + } + } + ArrayList modelBaseAssociationClasses = new ArrayList(); + for(int i = 0; i < orderedModelClasses.size(); i++){ + if(orderedModelClasses.get(i) instanceof AssociationClass){ + AssociationClass tempClass = (AssociationClass)orderedModelClasses.get(i); + if(tempClass.getGenerals().size() == 0){ + modelBaseAssociationClasses.add(tempClass); + } + } + } + + // check classes + checkDisableOverrideClasses(frame, modelBaseClasses, orderedModelClasses, true); + + // check associationClasses + checkDisableOverrideAssociationClasses(frame, modelBaseAssociationClasses, orderedModelClasses, true); + + // check references + checkDisableOverrideReferences(frame, orderedModelClasses, true); + + // check properties + checkDisableOverrideProperties(frame, orderedModelClasses, true); + + // check methods + checkDisableOverrideMethods(frame, orderedModelClasses, true); + + // check parameters + checkDisableOverrideParameters(frame, orderedModelClasses, true); + + frame.addLine2Log(""); + frame.addLine2Log("--> DisableOverride repair complete"); frame.addLine2Log(""); frame.addLine2Log("***************************************************************************"); } @@ -332,7 +388,7 @@ return subparameters; } - private void checkDisableOverrideClasses(ProgressLogDialog frame, ArrayList modelBaseClasses, ArrayList orderedModelClasses){ + private void checkDisableOverrideClasses(ProgressLogDialog frame, ArrayList modelBaseClasses, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverrideClassQualifiers = new ArrayList(); boolean firstClass = true; boolean classErrors = false; @@ -348,24 +404,19 @@ ArrayList childClasses = getAllChildClasses(thisClass, orderedModelClasses, false); for(int j = 0; j < disableOverrideClassQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideClassQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; Class referenceClass = thisClass; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(thisClass, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childClasses.size(); k++){ Class class_ = (Class)childClasses.get(k); String valueB = FlavorsHelper.qualifierValue(class_, qualifier); - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(class_, qualifier.name); if(effectiveInheritedValue != null){ @@ -380,7 +431,6 @@ referenceClass = class_; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ if(firstClass){ frame.addLine2Log(""); @@ -388,14 +438,50 @@ firstClass = false; classErrors = true; } - - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceClass.getOwner()).getName() + "::" + referenceClass.getName()+ " is overwritten in class "); - firstChild = false; + // CHECK + if(!repair){ + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceClass.getOwner()).getName() + "::" + referenceClass.getName()+ " is overwritten in class "); + firstChild = false; + } + frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = class_; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The value of the disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceClass.getOwner()).getName() + "::" + referenceClass.getName()+ " was set in class "); + firstChild = false; + } + frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); } - frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); } } } @@ -410,7 +496,7 @@ } } - private void checkDisableOverrideAssociationClasses(ProgressLogDialog frame, ArrayList modelBaseAssociationClasses, ArrayList orderedModelClasses){ + private void checkDisableOverrideAssociationClasses(ProgressLogDialog frame, ArrayList modelBaseAssociationClasses, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverrideAssociationClassQualifiers = new ArrayList(); boolean firstClass = true; boolean classErrors = false; @@ -426,26 +512,18 @@ ArrayList childClasses = getAllChildClasses(thisClass, orderedModelClasses, false); for(int j = 0; j < disableOverrideAssociationClassQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideAssociationClassQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; AssociationClass referenceAssociationClass = thisClass; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(thisClass, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childClasses.size(); k++){ AssociationClass class_ = (AssociationClass)childClasses.get(k); String valueB = FlavorsHelper.qualifierValue(class_, qualifier); -// if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB) || -// valueA == null && valueB != null){ - - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(class_, qualifier.name); if(effectiveInheritedValue != null){ @@ -460,22 +538,60 @@ referenceAssociationClass = class_; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ - + if(firstClass){ frame.addLine2Log(""); frame.addLine2Log("AssociationClasses:"); firstClass = false; classErrors = true; } - - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceAssociationClass.getOwner()).getName() + "::" + referenceAssociationClass.getName()+ " is overwritten in associationClass "); - firstChild = false; + + // CHECK + if(!repair){ + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceAssociationClass.getOwner()).getName() + "::" + referenceAssociationClass.getName()+ " is overwritten in associationClass "); + firstChild = false; + } + frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); + + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = class_; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The value of the disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceAssociationClass.getOwner()).getName() + "::" + referenceAssociationClass.getName()+ " was set in associationClass "); + firstChild = false; + } + frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); } - frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); } } } @@ -490,7 +606,7 @@ } } - private void checkDisableOverrideReferences(ProgressLogDialog frame, ArrayList orderedModelClasses){ + private void checkDisableOverrideReferences(ProgressLogDialog frame, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverrideReferenceQualifiers = new ArrayList(); ArrayList checkedSubclassReferences = new ArrayList(); @@ -513,18 +629,14 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideReferenceQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideReferenceQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; Property referenceReference = property; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(property, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childProperties.size(); k++){ Property childProperty = (Property)childProperties.get(k); @@ -532,10 +644,6 @@ checkedSubclassReferences.add(childProperty); } String valueB = FlavorsHelper.qualifierValue(childProperty, qualifier); -// if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| -// valueA == null && valueB != null){ - - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(childProperty, qualifier.name); if(effectiveInheritedValue != null){ @@ -550,24 +658,64 @@ referenceReference = childProperty; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ - - if(firstReference){ - frame.addLine2Log(""); - frame.addLine2Log("AssociationEnds:"); - firstReference = false; - referenceErrors = true; - } - - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceReference.getOwner().getOwner()).getName() + "::" + - ((NamedElement)referenceReference.getOwner()).getName() + "::" + referenceReference.getName() + " is overwritten in associationEnd "); - firstChild = false; - } - frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + - ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); + + if(firstReference){ + frame.addLine2Log(""); + frame.addLine2Log("AssociationEnds:"); + firstReference = false; + referenceErrors = true; + } + + //CHECK + if(!repair){ + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceReference.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceReference.getOwner()).getName() + "::" + referenceReference.getName() + " is overwritten in associationEnd "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); + + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = childProperty; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The value of the disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceReference.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceReference.getOwner()).getName() + "::" + referenceReference.getName() + " was set in associationEnd "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); + + } } } firstQualifier = false; @@ -586,7 +734,7 @@ } - private void checkDisableOverrideProperties(ProgressLogDialog frame, ArrayList orderedModelClasses){ + private void checkDisableOverrideProperties(ProgressLogDialog frame, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverridePropertyQualifiers = new ArrayList(); ArrayList checkedSubclassProperties = new ArrayList(); @@ -608,18 +756,14 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverridePropertyQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverridePropertyQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; Property referenceProperty = property; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(property, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childProperties.size(); k++){ Property childProperty = (Property)childProperties.get(k); @@ -627,10 +771,6 @@ checkedSubclassProperties.add(childProperty); } String valueB = FlavorsHelper.qualifierValue(childProperty, qualifier); -// if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| -// valueA == null && valueB != null){ - - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(childProperty, qualifier.name); if(effectiveInheritedValue != null){ @@ -645,8 +785,7 @@ referenceProperty = childProperty; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ - + if(firstProperty){ frame.addLine2Log(""); frame.addLine2Log("Properties:"); @@ -654,15 +793,56 @@ propertyErrors = true; } - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceProperty.getOwner().getOwner()).getName() + "::" + - ((NamedElement)referenceProperty.getOwner()).getName() + "::" + referenceProperty.getName() + " is overwritten in property "); - firstChild = false; + // CHECK + if(!repair){ + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceProperty.getOwner()).getName() + "::" + referenceProperty.getName() + " is overwritten in property "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); + + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = childProperty; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceProperty.getOwner()).getName() + "::" + referenceProperty.getName() + " was set in property "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); + } - frame.addLine2Log(" - " + ((NamedElement)childProperty.getOwner().getOwner()).getName() + "::" + - ((NamedElement)childProperty.getOwner()).getName() + "::" + childProperty.getName()); } } firstQualifier = false; @@ -680,7 +860,7 @@ } - private void checkDisableOverrideMethods(ProgressLogDialog frame, ArrayList orderedModelClasses){ + private void checkDisableOverrideMethods(ProgressLogDialog frame, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverrideMethodQualifiers = new ArrayList(); ArrayList checkedSubclassMethods = new ArrayList(); @@ -702,18 +882,14 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideMethodQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideMethodQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; Operation referenceOperation = operation; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(operation, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childMethods.size(); k++){ Operation childMethod = (Operation)childMethods.get(k); @@ -721,10 +897,6 @@ checkedSubclassMethods.add(childMethod); } String valueB = FlavorsHelper.qualifierValue(childMethod, qualifier); -// if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| -// valueA == null && valueB != null){ - - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(childMethod, qualifier.name); if(effectiveInheritedValue != null){ @@ -739,8 +911,7 @@ referenceOperation = childMethod; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ - + if(firstMethod){ frame.addLine2Log(""); frame.addLine2Log("Methods:"); @@ -748,15 +919,56 @@ methodErrors = true; } - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceOperation.getOwner().getOwner()).getName() + "::" + - ((NamedElement)referenceOperation.getOwner()).getName() + "::" + referenceOperation.getName() + " is overwritten in method "); - firstChild = false; + //CHECK + if(!repair){ + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceOperation.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceOperation.getOwner()).getName() + "::" + referenceOperation.getName() + " is overwritten in method "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childMethod.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childMethod.getOwner()).getName() + "::" + childMethod.getName()); + + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = childMethod; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceOperation.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceOperation.getOwner()).getName() + "::" + referenceOperation.getName() + " was set in method "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childMethod.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childMethod.getOwner()).getName() + "::" + childMethod.getName()); + } - frame.addLine2Log(" - " + ((NamedElement)childMethod.getOwner().getOwner()).getName() + "::" + - ((NamedElement)childMethod.getOwner()).getName() + "::" + childMethod.getName()); } } firstQualifier = false; @@ -773,7 +985,7 @@ } } - private void checkDisableOverrideParameters(ProgressLogDialog frame, ArrayList orderedModelClasses){ + private void checkDisableOverrideParameters(ProgressLogDialog frame, ArrayList orderedModelClasses, boolean repair){ ArrayList disableOverrideParameterQualifiers = new ArrayList(); ArrayList checkedSubclassParameters = new ArrayList(); @@ -798,18 +1010,14 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideParameterQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideParameterQualifiers.get(j); - /**/ String referenceValue = qualifier.defaultValue; Parameter referenceParameter = parameter; boolean disableOverride = false; - /**/ String valueA = FlavorsHelper.qualifierValue(parameter, qualifier); - /**/ if(valueA == null && referenceValue != null || valueA != null && !valueA.equalsIgnoreCase(referenceValue)){ disableOverride = true; referenceValue = valueA; } - /**/ boolean firstChild = true; for(int k = 0; k < childParameters.size(); k++){ Parameter childParameter = (Parameter)childParameters.get(k); @@ -817,10 +1025,6 @@ checkedSubclassParameters.add(childParameter); } String valueB = FlavorsHelper.qualifierValue(childParameter, qualifier); -// if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| -// valueA == null && valueB != null){ - - /**/ if(valueB == null){ EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(childParameter, qualifier.name); if(effectiveInheritedValue != null){ @@ -835,8 +1039,7 @@ referenceParameter = childParameter; } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) && disableOverride){ - /**/ - + if(firstParameter){ frame.addLine2Log(""); frame.addLine2Log("Method parameters:"); @@ -844,17 +1047,60 @@ parameterErrors = true; } - if(firstChild){ - frame.addLine2Log(""); - frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)referenceParameter.getOwner().getOwner().getOwner()).getName() + "::" + - ((NamedElement)referenceParameter.getOwner().getOwner()).getName() + "::" + - ((NamedElement)referenceParameter.getOwner()).getName() + "::" + referenceParameter.getName() + " is overwritten in parameter "); - firstChild = false; + // CHECK + if(!repair){ + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceParameter.getOwner().getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceParameter.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceParameter.getOwner()).getName() + "::" + referenceParameter.getName() + " is overwritten in parameter "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childParameter.getOwner().getOwner().getOwner()).getName() + "::" + + ((NamedElement)childParameter.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childParameter.getOwner()).getName() + "::" + childParameter.getName()); + + // REPAIR + } else { + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + try { + final NamedElement namedElement = childParameter; + final String qualName = qualifier.name; + final String qualValue = referenceValue; + + editingDomain.run(new ResourceSetModifyOperation("applyInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + if(FlavorsHelper.isNativeMappedQualifier(qualName)){ + flavorsHelper.mapQualifierToModel(namedElement, qualName, qualValue); + } else { + removeNonNativeQualifierValue(namedElement, qualName); + } + + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + if(firstChild){ + frame.addLine2Log(""); + frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); + frame.addLine2Log(((NamedElement)referenceParameter.getOwner().getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceParameter.getOwner().getOwner()).getName() + "::" + + ((NamedElement)referenceParameter.getOwner()).getName() + "::" + referenceParameter.getName() + " was set in parameter "); + firstChild = false; + } + frame.addLine2Log(" - " + ((NamedElement)childParameter.getOwner().getOwner().getOwner()).getName() + "::" + + ((NamedElement)childParameter.getOwner().getOwner()).getName() + "::" + + ((NamedElement)childParameter.getOwner()).getName() + "::" + childParameter.getName()); + } - frame.addLine2Log(" - " + ((NamedElement)childParameter.getOwner().getOwner().getOwner()).getName() + "::" + - ((NamedElement)childParameter.getOwner().getOwner()).getName() + "::" + - ((NamedElement)childParameter.getOwner()).getName() + "::" + childParameter.getName()); } } firstQualifier = false; @@ -901,6 +1147,30 @@ return false; } + private void removeNonNativeQualifierValue(NamedElement element, String qualifierName){ + + Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); + int stereotypePropertyIndex = ((List) element.getValue(cimStereotype, "QualifierName")).size(); + List qualifierNames = (List) element.getValue(cimStereotype, "QualifierName"); + List qualifierValues = (List) element.getValue(cimStereotype, "QualifierValue"); + List names = new ArrayList(); + List values = new ArrayList(); + names.addAll(qualifierNames); + values.addAll(qualifierValues); + qualifierNames.clear(); + qualifierValues.clear(); + + for(int i = 0; i < stereotypePropertyIndex; i++){ + String name = (String)names.get(i); + String value = (String)values.get(i); + + if(!qualifierName.equalsIgnoreCase(name)){ + qualifierNames.add(name); + qualifierValues.add(value); + } + } + } + public boolean isReference(NamedElement element){ boolean isRef = false; Index: QualifiersPropertySection.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/QualifiersPropertySection.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- QualifiersPropertySection.java 5 Aug 2005 13:44:05 -0000 1.26 +++ QualifiersPropertySection.java 10 Aug 2005 07:19:39 -0000 1.27 @@ -92,7 +92,7 @@ private Button editValueButton; public Button showAllButton; - private Button inheritedValueButton; +// private Button inheritedValueButton; private Button checkButton; private Button checkAndRepairButton; private TableColumn nameColumn; @@ -153,28 +153,38 @@ }); //formdata inherited values buootn - formdata = new FormData(); - formdata.left = new FormAttachment(showAllButton,30); - formdata.top = new FormAttachment(0,0); - inheritedValueButton = getWidgetFactory().createButton(composite1, "Apply inherited values", 8); - inheritedValueButton.setLayoutData(formdata); - inheritedValueButton.addSelectionListener(new SelectionAdapter() { - - public void widgetSelected(SelectionEvent selectionevent) - { - final NamedElement element = (NamedElement)getEObject(); - FlavorsHelper flavorHelper = new FlavorsHelper(element.getModel()); - flavorHelper.applyNativeInheritedValues(element, true); - refresh(); - } - - }); +// formdata = new FormData(); +// formdata.left = new FormAttachment(showAllButton,30); +// formdata.top = new FormAttachment(0,0); +// inheritedValueButton = getWidgetFactory().createButton(composite1, "Apply inherited values", 8); +// inheritedValueButton.setLayoutData(formdata); +// inheritedValueButton.addSelectionListener(new SelectionAdapter() { +// +// public void widgetSelected(SelectionEvent selectionevent) +// { +// final NamedElement element = (NamedElement)getEObject(); +//// FlavorsHelper flavorHelper = new FlavorsHelper(element.getModel()); +//// flavorHelper.applyNativeInheritedValues(element, true); +// +// try { +// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); +// } catch (Exception e) { +// } +// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); +// ProgressLogDialog frame = new ProgressLogDialog(shell); +// +// CheckAndRepair checker = new CheckAndRepair(element.getModel()); +// checker.applyAllNativeInheritedValues(frame); +// refresh(); +// } +// +// }); //formdata inherited values button formdata = new FormData(); - formdata.left = new FormAttachment(inheritedValueButton,10); + formdata.left = new FormAttachment(showAllButton,30); formdata.top = new FormAttachment(0,0); - checkButton = getWidgetFactory().createButton(composite1, "Check", 8); + checkButton = getWidgetFactory().createButton(composite1, "Check model", 8); checkButton.setLayoutData(formdata); checkButton.addSelectionListener(new SelectionAdapter() { @@ -188,9 +198,11 @@ } Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); ProgressLogDialog frame = new ProgressLogDialog(shell); + frame.setSubTask("Checking the model for errors"); CheckAndRepair checkAndRepair = new CheckAndRepair(element.getModel()); checkAndRepair.checkAll(frame); + frame.allTasksDone(); refresh(); } @@ -201,25 +213,26 @@ formdata = new FormData(); formdata.left = new FormAttachment(checkButton,5); formdata.top = new FormAttachment(0,0); - checkAndRepairButton = getWidgetFactory().createButton(composite1, "Check and Repair", 8); + checkAndRepairButton = getWidgetFactory().createButton(composite1, "Check and Repair model", 8); checkAndRepairButton.setLayoutData(formdata); checkAndRepairButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent selectionevent) { -// final NamedElement element = (NamedElement)getEObject(); -// -// try { -// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); -// //"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); -// } catch (Exception e) { -// } -// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); -// ProgressLogDialog frame = new ProgressLogDialog(shell); -// -// CheckAndRepair checkAndRepair = new CheckAndRepair(element.getModel()); -// checkAndRepair.checkAll(frame); -// refresh(); + final NamedElement element = (NamedElement)getEObject(); + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + //"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); + ... [truncated message content] |