public override bool CanExecute() { if (AssociationGuid == Guid.Empty || PSMClassGuid == Guid.Empty) { ErrorDescription = CommandErrors.CMDERR_INPUT_TYPE_MISMATCH; return(false); } PSMAssociation association = Project.TranslateComponent <PSMAssociation>(AssociationGuid); PSMClass oldclass = association.Parent as PSMClass; if (oldclass == null) { ErrorDescription = CommandErrors.CMDERR_PARENT_NOT_PSMCLASS; return(false); } PSMClass newclass = Project.TranslateComponent <PSMClass>(PSMClassGuid); if (!oldclass.GetGeneralClasses().Contains(newclass)) { ErrorDescription = CommandErrors.CMDERR_CLASS_NOT_GENERAL; return(false); } return(true); }
public override bool CanExecute() { if (generalClassGuid != Guid.Empty && Project.VerifyComponentType <PSMClass>(generalClassGuid) && specificClassGuid != Guid.Empty && Project.VerifyComponentType <PSMClass>(specificClassGuid) && schemaGuid != Guid.Empty && Project.VerifyComponentType <PSMSchema>(schemaGuid)) { PSMClass specific = Project.TranslateComponent <PSMClass>(specificClassGuid); PSMClass general = Project.TranslateComponent <PSMClass>(generalClassGuid); if (specific.GeneralizationAsSpecific != null) { ErrorDescription = CommandErrors.CMDERR_NO_MULTIPLE_INHERITANCE; return(false); } else if (general.Final) { ErrorDescription = CommandErrors.CMDERR_GENERAL_IS_FINAL; return(false); } else if (specificClassGuid == generalClassGuid) { ErrorDescription = CommandErrors.CMDERR_NO_SELF_INHERITANCE; return(false); } else if (general.GetGeneralClasses().Contains(specific)) { ErrorDescription = CommandErrors.CMDERR_CYCLIC_INHERITANCE; return(false); } else { return(true); } } else { ErrorDescription = CommandErrors.CMDERR_INPUT_TYPE_MISMATCH; return(false); } }
public override bool CanExecute() { if (AttributeGuid == Guid.Empty || PSMClassGuid == Guid.Empty) { ErrorDescription = CommandErrors.CMDERR_INPUT_TYPE_MISMATCH; return(false); } PSMAttribute attribute = Project.TranslateComponent <PSMAttribute>(AttributeGuid); PSMClass oldclass = attribute.PSMClass; PSMClass newclass = Project.TranslateComponent <PSMClass>(PSMClassGuid); if (!oldclass.GetGeneralClasses().Contains(newclass)) { ErrorDescription = CommandErrors.CMDERR_CLASS_NOT_GENERAL; return(false); } return(true); }