From: Benjamin B. <bg...@us...> - 2005-08-05 13:44:20
|
Update of /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25920/Plugin/com/ibm/ecute/rsa/core/internal/properties Modified Files: QualifiersPropertySection.java CheckAndRepair.java FlavorsHelper.java Log Message: the disableOverride check should work now for all elements Index: FlavorsHelper.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/FlavorsHelper.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- FlavorsHelper.java 5 Aug 2005 07:55:14 -0000 1.7 +++ FlavorsHelper.java 5 Aug 2005 13:44:07 -0000 1.8 @@ -22,11 +22,9 @@ import org.eclipse.uml2.Constraint; import org.eclipse.uml2.Element; import org.eclipse.uml2.Model; -import org.eclipse.uml2.MultiplicityElement; import org.eclipse.uml2.NamedElement; import org.eclipse.uml2.OpaqueExpression; import org.eclipse.uml2.Operation; -import org.eclipse.uml2.Package; import org.eclipse.uml2.Parameter; import org.eclipse.uml2.ParameterDirectionKind; import org.eclipse.uml2.PrimitiveType; @@ -238,7 +236,7 @@ return list; } - private boolean isNativeMappedQualifier(String qualifierName){ + public static boolean isNativeMappedQualifier(String qualifierName){ String[] nativeQualifiers = {"Abstract", "Aggregate", "Aggregation", "Association", "Composition", "ArrayType", "Deprecated", "Description", "In", "Out", "Key", "Max", @@ -252,7 +250,7 @@ return false; } - private boolean isNativeMappedQualifier(Qualifier qualifier){ + private static boolean isNativeMappedQualifier(Qualifier qualifier){ if(isNativeMappedQualifier(qualifier.name)){ return true; @@ -870,7 +868,11 @@ if(method != null && equalMethods(operation, method)){ - Type datatype = method.getType(); + Type datatype = null; + if(method.getReturnResults().get(0) != null){ + datatype = ((Parameter)method.getReturnResults().get(0)).getType(); + } + if(datatype != null){ if(datatype.getName().equalsIgnoreCase("Octetstring")){ return(new EffectiveInheritedValue("true", (Class)parents.get(j))); @@ -1193,19 +1195,30 @@ return null; } - public static String qualifierValue(NamedElement element, String qualifierName){ + public static String qualifierValue(NamedElement element, Qualifier qualifier){ - Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); - List qualifierNames = (List) element.getValue(cimStereotype, "QualifierName"); - List qualifierValues = (List) element.getValue(cimStereotype, "QualifierValue"); + String qualifierName = qualifier.name; - for(int i = 0; i < qualifierNames.size(); i++){ - if(qualifierName.equalsIgnoreCase((String)qualifierNames.get(i))){ - return (String)qualifierValues.get(i); + if(!isNativeMappedQualifier(qualifierName)){ + Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); + List qualifierNames = (List) element.getValue(cimStereotype, "QualifierName"); + List qualifierValues = (List) element.getValue(cimStereotype, "QualifierValue"); + + for(int i = 0; i < qualifierNames.size(); i++){ + if(qualifierName.equalsIgnoreCase((String)qualifierNames.get(i))){ + return (String)qualifierValues.get(i); + } + } + + EffectiveInheritedValue effectiveInheritedValue = effectiveInheritedValue(element, qualifierName); + if(effectiveInheritedValue != null){ + return effectiveInheritedValue.getValue(); + } else { + return qualifier.defaultValue; } } - if(qualifierName.equalsIgnoreCase("Abstract")){ + else if(qualifierName.equalsIgnoreCase("Abstract")){ if(element instanceof Class){ if(((Class)element).isAbstract()){ return "true"; @@ -1398,8 +1411,8 @@ type = ((Property)element).getType(); } else { Operation op = (Operation)element; - if(op.getReturnResult("ReturnType") != null){ - type = op.getReturnResult("ReturnType").getType(); + if(op.getReturnResults().get(0) != null){ + type = ((Parameter)op.getReturnResults().get(0)).getType(); } } if(type != null){ Index: CheckAndRepair.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/CheckAndRepair.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- CheckAndRepair.java 5 Aug 2005 07:55:14 -0000 1.2 +++ CheckAndRepair.java 5 Aug 2005 13:44:07 -0000 1.3 @@ -348,13 +348,39 @@ ArrayList childClasses = getAllChildClasses(thisClass, orderedModelClasses, false); for(int j = 0; j < disableOverrideClassQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideClassQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(thisClass, qualifier.name); + /**/ + 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.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| - valueA == null && valueB != null){ + String valueB = FlavorsHelper.qualifierValue(class_, qualifier); + + /**/ + if(valueB == null){ + EffectiveInheritedValue effectiveInheritedValue = FlavorsHelper.effectiveInheritedValue(class_, qualifier.name); + if(effectiveInheritedValue != null){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceClass = class_; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ if(firstClass){ frame.addLine2Log(""); @@ -366,7 +392,7 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)thisClass.getOwner()).getName() + "::" + thisClass.getName()+ " is overwritten in class "); + frame.addLine2Log(((NamedElement)referenceClass.getOwner()).getName() + "::" + referenceClass.getName()+ " is overwritten in class "); firstChild = false; } frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); @@ -400,14 +426,42 @@ ArrayList childClasses = getAllChildClasses(thisClass, orderedModelClasses, false); for(int j = 0; j < disableOverrideAssociationClassQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideAssociationClassQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(thisClass, qualifier.name); + /**/ + 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.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB) || - valueA == null && valueB != null){ - + 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){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceAssociationClass = class_; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ + if(firstClass){ frame.addLine2Log(""); frame.addLine2Log("AssociationClasses:"); @@ -418,7 +472,7 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)thisClass.getOwner()).getName() + "::" + thisClass.getName()+ " is overwritten in associationClass "); + frame.addLine2Log(((NamedElement)referenceAssociationClass.getOwner()).getName() + "::" + referenceAssociationClass.getName()+ " is overwritten in associationClass "); firstChild = false; } frame.addLine2Log(" - "+ ((NamedElement)class_.getOwner()).getName() + "::" + class_.getName()); @@ -459,17 +513,45 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideReferenceQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideReferenceQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(property, qualifier.name); + /**/ + 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); if(firstQualifier){ checkedSubclassReferences.add(childProperty); } - String valueB = FlavorsHelper.qualifierValue(childProperty, qualifier.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| - valueA == null && valueB != null){ - + 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){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceReference = childProperty; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ + if(firstReference){ frame.addLine2Log(""); frame.addLine2Log("AssociationEnds:"); @@ -480,8 +562,8 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)property.getOwner().getOwner()).getName() + "::" + - ((NamedElement)property.getOwner()).getName() + "::" + property.getName() + " is overwritten in associationEnd "); + 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() + "::" + @@ -526,17 +608,45 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverridePropertyQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverridePropertyQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(property, qualifier.name); + /**/ + 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); if(firstQualifier){ checkedSubclassProperties.add(childProperty); } - String valueB = FlavorsHelper.qualifierValue(childProperty, qualifier.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| - valueA == null && valueB != null){ - + 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){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceProperty = childProperty; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ + if(firstProperty){ frame.addLine2Log(""); frame.addLine2Log("Properties:"); @@ -547,8 +657,8 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)property.getOwner().getOwner()).getName() + "::" + - ((NamedElement)property.getOwner()).getName() + "::" + property.getName() + " is overwritten in property "); + 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() + "::" + @@ -592,17 +702,45 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideMethodQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideMethodQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(operation, qualifier.name); + /**/ + 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); if(firstQualifier){ checkedSubclassMethods.add(childMethod); } - String valueB = FlavorsHelper.qualifierValue(childMethod, qualifier.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| - valueA == null && valueB != null){ - + 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){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceOperation = childMethod; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ + if(firstMethod){ frame.addLine2Log(""); frame.addLine2Log("Methods:"); @@ -613,8 +751,8 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)operation.getOwner().getOwner()).getName() + "::" + - ((NamedElement)operation.getOwner()).getName() + "::" + operation.getName() + " is overwritten in method "); + 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() + "::" + @@ -660,16 +798,44 @@ boolean firstQualifier = true; for(int j = 0; j < disableOverrideParameterQualifiers.size(); j++){ Qualifier qualifier = (Qualifier)disableOverrideParameterQualifiers.get(j); - String valueA = FlavorsHelper.qualifierValue(parameter, qualifier.name); + /**/ + 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); if(firstQualifier){ checkedSubclassParameters.add(childParameter); } - String valueB = FlavorsHelper.qualifierValue(childParameter, qualifier.name); - if(valueA != null && valueB != null && !valueA.equalsIgnoreCase(valueB)|| - valueA == null && valueB != null){ + 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){ + valueB = effectiveInheritedValue.getValue(); + } + } + + if(((valueB == null && referenceValue != null)||(valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && !disableOverride){ + disableOverride = true; + referenceValue = valueB; + referenceParameter = childParameter; + } else if(((valueB == null && referenceValue != null)|| (valueB != null && !valueB.equalsIgnoreCase(referenceValue))) + && disableOverride){ + /**/ if(firstParameter){ frame.addLine2Log(""); @@ -681,9 +847,9 @@ if(firstChild){ frame.addLine2Log(""); frame.addLine2Log("The disable override qualifer " + qualifier.name + " defined in"); - frame.addLine2Log(((NamedElement)parameter.getOwner().getOwner().getOwner()).getName() + "::" + - ((NamedElement)parameter.getOwner().getOwner()).getName() + "::" + - ((NamedElement)parameter.getOwner()).getName() + "::" + parameter.getName() + " is overwritten in parameter "); + 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() + "::" + Index: QualifiersPropertySection.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/QualifiersPropertySection.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- QualifiersPropertySection.java 5 Aug 2005 07:55:14 -0000 1.25 +++ QualifiersPropertySection.java 5 Aug 2005 13:44:05 -0000 1.26 @@ -633,8 +633,8 @@ String octetstring_array = "octetstring[]"; Operation op = (Operation)element; Type type = null; - if(op.getReturnResult("ReturnType") != null){ - op.getReturnResult("ReturnType").getType(); + if(op.getReturnResults().get(0) != null){ + type = ((Parameter)op.getReturnResults().get(0)).getType(); } if(type != null){ if(type.getName().equalsIgnoreCase(octetstring) || type.getName().equalsIgnoreCase(octetstring_array)){ |