1 19 package org.netbeans.jmiimpl.mof.model; 20 21 import java.util.Collection ; 22 import javax.jmi.model.AssociationEnd; 23 import javax.jmi.model.Classifier; 24 import javax.jmi.model.MultiplicityType; 25 import javax.jmi.model.Reference; 26 import javax.jmi.model.RefersTo; 27 import org.netbeans.mdr.handlers.AssociationHandler; 28 import org.netbeans.mdr.storagemodel.StorableAssociation; 29 import org.netbeans.mdr.util.Logger; 30 31 35 public abstract class RefersToImpl extends AssociationHandler implements RefersTo { 36 37 38 public RefersToImpl(StorableAssociation s) { 39 super(s); 40 } 41 42 public boolean add(Reference reference, AssociationEnd associationEnd) { 43 boolean result = super_add(reference, associationEnd); 44 if (result) { 45 boolean isChangeable = associationEnd.isChangeable(); 46 MultiplicityType multiplicity = associationEnd.getMultiplicity(); 47 48 if (reference.isChangeable() != isChangeable) { 49 Logger.getDefault().log(Logger.WARNING, "Reference<->AssociationEnd inconsistency: \n " + 50 reference.getName() + "[Reference].isChangeable = " + reference.isChangeable() + 51 "\n " + associationEnd.getName() + "[AssociationEnd].isChangeable = " + isChangeable); 52 reference.setChangeable(isChangeable); 53 Logger.getDefault().log(Logger.WARNING, "Value of isChangeable attribute of the reference was updated to " + isChangeable); 54 } else if (!reference.getMultiplicity().equals(multiplicity)) { 55 Logger.getDefault().log(Logger.WARNING, "Reference<->AssociationEnd inconsistency: \n " + 56 reference.getName() + "[Reference].multiplicity = " + reference.getMultiplicity() + 57 "\n " + associationEnd.getName() + "[AssociationEnd].multiplicity = " + multiplicity); 58 reference.setMultiplicity(multiplicity); 59 Logger.getDefault().log(Logger.WARNING, "Value of multiplicity attribute of the reference was updated to " + multiplicity); 60 } 61 } 62 return result; 63 } 64 65 protected abstract boolean super_add(Reference reference, AssociationEnd associationEnd); 66 } 67 | Popular Tags |