00001
00002
00003
00004 package org.andromda.cartridges.arc.metafacades;
00005
00011 public abstract class ARC_ClassifierFacadeLogic
00012 extends org.andromda.core.metafacade.MetafacadeBase
00013 implements org.andromda.cartridges.arc.metafacades.ARC_ClassifierFacade
00014 {
00015
00016 protected Object metaObject;
00017
00018 public ARC_ClassifierFacadeLogic(Object metaObject, String context)
00019 {
00020 super(metaObject, getContext(context));
00021 this.superClassifierFacade =
00022 (org.andromda.metafacades.uml.ClassifierFacade)
00023 org.andromda.core.metafacade.MetafacadeFactory.getInstance().createFacadeImpl(
00024 "org.andromda.metafacades.uml.ClassifierFacade",
00025 metaObject,
00026 getContext(context));
00027 this.metaObject = metaObject;
00028 }
00029
00033 private static String getContext(String context)
00034 {
00035 if (context == null)
00036 {
00037 context = "org.andromda.cartridges.arc.metafacades.ARC_ClassifierFacade";
00038 }
00039 return context;
00040 }
00041
00042 private org.andromda.metafacades.uml.ClassifierFacade superClassifierFacade;
00043 private boolean superClassifierFacadeInitialized = false;
00044
00048 private org.andromda.metafacades.uml.ClassifierFacade getSuperClassifierFacade()
00049 {
00050 if (!this.superClassifierFacadeInitialized)
00051 {
00052 ((org.andromda.core.metafacade.MetafacadeBase)superClassifierFacade).setMetafacadeContext(this.getMetafacadeContext());
00053 this.superClassifierFacadeInitialized = true;
00054 }
00055 return superClassifierFacade;
00056 }
00057
00061 public void resetMetafacadeContext(String context)
00062 {
00063 if (!this.contextRoot)
00064 {
00065 context = getContext(context);
00066 setMetafacadeContext (context);
00067 if (this.superClassifierFacadeInitialized)
00068 {
00069 ((org.andromda.core.metafacade.MetafacadeBase)superClassifierFacade).resetMetafacadeContext(context);
00070 }
00071 }
00072 }
00073
00077 public boolean isARC_ClassifierFacadeMetaType()
00078 {
00079 return true;
00080 }
00081
00082
00083
00087 protected abstract java.util.Collection handleGetResponsibilities();
00088
00089 private void handleGetResponsibilities1aPreCondition()
00090 {
00091 }
00092
00093 private void handleGetResponsibilities1aPostCondition()
00094 {
00095 }
00096
00097 public final java.util.Collection getResponsibilities()
00098 {
00099 java.util.Collection Responsibilities1a = null;
00100 handleGetResponsibilities1aPreCondition();
00101 Responsibilities1a = handleGetResponsibilities();
00102 handleGetResponsibilities1aPostCondition();
00103 return Responsibilities1a;
00104 }
00105
00106
00107
00108 protected abstract org.andromda.cartridges.arc.Responsibility handleGetResponsibility(java.lang.String name);
00109
00110 private void handleGetResponsibility1oPreCondition()
00111 {
00112 }
00113
00114 private void handleGetResponsibility1oPostCondition()
00115 {
00116 }
00117
00118 public org.andromda.cartridges.arc.Responsibility getResponsibility(java.lang.String name)
00119 {
00120 handleGetResponsibility1oPreCondition();
00121 org.andromda.cartridges.arc.Responsibility returnValue = handleGetResponsibility(name);
00122 handleGetResponsibility1oPostCondition();
00123 return returnValue;
00124 }
00125
00129 public boolean isClassifierFacadeMetaType()
00130 {
00131 return true;
00132 }
00133
00137 public boolean isGeneralizableElementFacadeMetaType()
00138 {
00139 return true;
00140 }
00141
00145 public boolean isModelElementFacadeMetaType()
00146 {
00147 return true;
00148 }
00149
00150
00151
00152 public org.andromda.metafacades.uml.AttributeFacade findAttribute(java.lang.String name)
00153 {
00154 return this.getSuperClassifierFacade().findAttribute(name);
00155 }
00156
00157
00158 public java.util.Collection getAbstractions()
00159 {
00160 return this.getSuperClassifierFacade().getAbstractions();
00161 }
00162
00163
00164 public java.util.Collection getAllAssociatedClasses()
00165 {
00166 return this.getSuperClassifierFacade().getAllAssociatedClasses();
00167 }
00168
00169
00170 public java.util.Collection getAllProperties()
00171 {
00172 return this.getSuperClassifierFacade().getAllProperties();
00173 }
00174
00175
00176 public java.util.Collection getAllRequiredConstructorParameters()
00177 {
00178 return this.getSuperClassifierFacade().getAllRequiredConstructorParameters();
00179 }
00180
00181
00182 public org.andromda.metafacades.uml.ClassifierFacade getArray()
00183 {
00184 return this.getSuperClassifierFacade().getArray();
00185 }
00186
00187
00188 public java.lang.String getArrayName()
00189 {
00190 return this.getSuperClassifierFacade().getArrayName();
00191 }
00192
00193
00194 public java.util.Collection getAssociatedClasses()
00195 {
00196 return this.getSuperClassifierFacade().getAssociatedClasses();
00197 }
00198
00199
00200 public java.util.List getAssociationEnds()
00201 {
00202 return this.getSuperClassifierFacade().getAssociationEnds();
00203 }
00204
00205
00206 public java.util.Collection getAttributes()
00207 {
00208 return this.getSuperClassifierFacade().getAttributes();
00209 }
00210
00211
00212 public java.util.Collection getAttributes(boolean follow)
00213 {
00214 return this.getSuperClassifierFacade().getAttributes(follow);
00215 }
00216
00217
00218 public java.lang.String getFullyQualifiedArrayName()
00219 {
00220 return this.getSuperClassifierFacade().getFullyQualifiedArrayName();
00221 }
00222
00223
00224 public java.util.Collection getImplementationOperations()
00225 {
00226 return this.getSuperClassifierFacade().getImplementationOperations();
00227 }
00228
00229
00230 public java.lang.String getImplementedInterfaceList()
00231 {
00232 return this.getSuperClassifierFacade().getImplementedInterfaceList();
00233 }
00234
00235
00236 public java.util.Collection getInstanceAttributes()
00237 {
00238 return this.getSuperClassifierFacade().getInstanceAttributes();
00239 }
00240
00241
00242 public java.util.Collection getInstanceOperations()
00243 {
00244 return this.getSuperClassifierFacade().getInstanceOperations();
00245 }
00246
00247
00248 public java.util.Collection getInterfaceAbstractions()
00249 {
00250 return this.getSuperClassifierFacade().getInterfaceAbstractions();
00251 }
00252
00253
00254 public java.lang.String getJavaNullString()
00255 {
00256 return this.getSuperClassifierFacade().getJavaNullString();
00257 }
00258
00259
00260 public java.util.Collection getNavigableConnectingEnds()
00261 {
00262 return this.getSuperClassifierFacade().getNavigableConnectingEnds();
00263 }
00264
00265
00266 public java.util.Collection getNavigableConnectingEnds(boolean follow)
00267 {
00268 return this.getSuperClassifierFacade().getNavigableConnectingEnds(follow);
00269 }
00270
00271
00272 public org.andromda.metafacades.uml.ClassifierFacade getNonArray()
00273 {
00274 return this.getSuperClassifierFacade().getNonArray();
00275 }
00276
00277
00278 public java.lang.String getOperationCallFromAttributes()
00279 {
00280 return this.getSuperClassifierFacade().getOperationCallFromAttributes();
00281 }
00282
00283
00284 public java.util.Collection getOperations()
00285 {
00286 return this.getSuperClassifierFacade().getOperations();
00287 }
00288
00289
00290 public java.util.Collection getProperties()
00291 {
00292 return this.getSuperClassifierFacade().getProperties();
00293 }
00294
00295
00296 public java.util.Collection getProperties(boolean follow)
00297 {
00298 return this.getSuperClassifierFacade().getProperties(follow);
00299 }
00300
00301
00302 public java.util.Collection getRequiredConstructorParameters()
00303 {
00304 return this.getSuperClassifierFacade().getRequiredConstructorParameters();
00305 }
00306
00307
00308 public java.lang.Long getSerialVersionUID()
00309 {
00310 return this.getSuperClassifierFacade().getSerialVersionUID();
00311 }
00312
00313
00314 public java.util.Collection getStaticAttributes()
00315 {
00316 return this.getSuperClassifierFacade().getStaticAttributes();
00317 }
00318
00319
00320 public java.util.Collection getStaticOperations()
00321 {
00322 return this.getSuperClassifierFacade().getStaticOperations();
00323 }
00324
00325
00326 public org.andromda.metafacades.uml.ClassifierFacade getSuperClass()
00327 {
00328 return this.getSuperClassifierFacade().getSuperClass();
00329 }
00330
00331
00332 public java.lang.String getWrapperName()
00333 {
00334 return this.getSuperClassifierFacade().getWrapperName();
00335 }
00336
00337
00338 public boolean isAbstract()
00339 {
00340 return this.getSuperClassifierFacade().isAbstract();
00341 }
00342
00343
00344 public boolean isArrayType()
00345 {
00346 return this.getSuperClassifierFacade().isArrayType();
00347 }
00348
00349
00350 public boolean isAssociationClass()
00351 {
00352 return this.getSuperClassifierFacade().isAssociationClass();
00353 }
00354
00355
00356 public boolean isBlobType()
00357 {
00358 return this.getSuperClassifierFacade().isBlobType();
00359 }
00360
00361
00362 public boolean isBooleanType()
00363 {
00364 return this.getSuperClassifierFacade().isBooleanType();
00365 }
00366
00367
00368 public boolean isClobType()
00369 {
00370 return this.getSuperClassifierFacade().isClobType();
00371 }
00372
00373
00374 public boolean isCollectionType()
00375 {
00376 return this.getSuperClassifierFacade().isCollectionType();
00377 }
00378
00379
00380 public boolean isDataType()
00381 {
00382 return this.getSuperClassifierFacade().isDataType();
00383 }
00384
00385
00386 public boolean isDateType()
00387 {
00388 return this.getSuperClassifierFacade().isDateType();
00389 }
00390
00391
00392 public boolean isEnumeration()
00393 {
00394 return this.getSuperClassifierFacade().isEnumeration();
00395 }
00396
00397
00398 public boolean isFileType()
00399 {
00400 return this.getSuperClassifierFacade().isFileType();
00401 }
00402
00403
00404 public boolean isInterface()
00405 {
00406 return this.getSuperClassifierFacade().isInterface();
00407 }
00408
00409
00410 public boolean isLeaf()
00411 {
00412 return this.getSuperClassifierFacade().isLeaf();
00413 }
00414
00415
00416 public boolean isListType()
00417 {
00418 return this.getSuperClassifierFacade().isListType();
00419 }
00420
00421
00422 public boolean isMapType()
00423 {
00424 return this.getSuperClassifierFacade().isMapType();
00425 }
00426
00427
00428 public boolean isPrimitive()
00429 {
00430 return this.getSuperClassifierFacade().isPrimitive();
00431 }
00432
00433
00434 public boolean isSetType()
00435 {
00436 return this.getSuperClassifierFacade().isSetType();
00437 }
00438
00439
00440 public boolean isStringType()
00441 {
00442 return this.getSuperClassifierFacade().isStringType();
00443 }
00444
00445
00446 public boolean isTimeType()
00447 {
00448 return this.getSuperClassifierFacade().isTimeType();
00449 }
00450
00451
00452 public java.lang.Object findTaggedValue(java.lang.String tagName, boolean follow)
00453 {
00454 return this.getSuperClassifierFacade().findTaggedValue(tagName, follow);
00455 }
00456
00457
00458 public java.util.Collection getAllGeneralizations()
00459 {
00460 return this.getSuperClassifierFacade().getAllGeneralizations();
00461 }
00462
00463
00464 public java.util.Collection getAllSpecializations()
00465 {
00466 return this.getSuperClassifierFacade().getAllSpecializations();
00467 }
00468
00469
00470 public org.andromda.metafacades.uml.GeneralizableElementFacade getGeneralization()
00471 {
00472 return this.getSuperClassifierFacade().getGeneralization();
00473 }
00474
00475
00476 public java.util.Collection getGeneralizationLinks()
00477 {
00478 return this.getSuperClassifierFacade().getGeneralizationLinks();
00479 }
00480
00481
00482 public java.lang.String getGeneralizationList()
00483 {
00484 return this.getSuperClassifierFacade().getGeneralizationList();
00485 }
00486
00487
00488 public org.andromda.metafacades.uml.GeneralizableElementFacade getGeneralizationRoot()
00489 {
00490 return this.getSuperClassifierFacade().getGeneralizationRoot();
00491 }
00492
00493
00494 public java.util.Collection getGeneralizations()
00495 {
00496 return this.getSuperClassifierFacade().getGeneralizations();
00497 }
00498
00499
00500 public java.util.Collection getSpecializations()
00501 {
00502 return this.getSuperClassifierFacade().getSpecializations();
00503 }
00504
00505
00506 public void copyTaggedValues(org.andromda.metafacades.uml.ModelElementFacade element)
00507 {
00508 this.getSuperClassifierFacade().copyTaggedValues(element);
00509 }
00510
00511
00512 public java.lang.Object findTaggedValue(java.lang.String tagName)
00513 {
00514 return this.getSuperClassifierFacade().findTaggedValue(tagName);
00515 }
00516
00517
00518 public java.util.Collection findTaggedValues(java.lang.String tagName)
00519 {
00520 return this.getSuperClassifierFacade().findTaggedValues(tagName);
00521 }
00522
00523
00524 public java.util.Collection getConstraints()
00525 {
00526 return this.getSuperClassifierFacade().getConstraints();
00527 }
00528
00529
00530 public java.util.Collection getConstraints(java.lang.String kind)
00531 {
00532 return this.getSuperClassifierFacade().getConstraints(kind);
00533 }
00534
00535
00536 public java.lang.String getDocumentation(java.lang.String indent, int lineLength)
00537 {
00538 return this.getSuperClassifierFacade().getDocumentation(indent, lineLength);
00539 }
00540
00541
00542 public java.lang.String getDocumentation(java.lang.String indent, int lineLength, boolean htmlStyle)
00543 {
00544 return this.getSuperClassifierFacade().getDocumentation(indent, lineLength, htmlStyle);
00545 }
00546
00547
00548 public java.lang.String getDocumentation(java.lang.String indent)
00549 {
00550 return this.getSuperClassifierFacade().getDocumentation(indent);
00551 }
00552
00553
00554 public java.lang.String getFullyQualifiedName(boolean modelName)
00555 {
00556 return this.getSuperClassifierFacade().getFullyQualifiedName(modelName);
00557 }
00558
00559
00560 public java.lang.String getFullyQualifiedName()
00561 {
00562 return this.getSuperClassifierFacade().getFullyQualifiedName();
00563 }
00564
00565
00566 public java.lang.String getFullyQualifiedNamePath()
00567 {
00568 return this.getSuperClassifierFacade().getFullyQualifiedNamePath();
00569 }
00570
00571
00572 public java.lang.String getId()
00573 {
00574 return this.getSuperClassifierFacade().getId();
00575 }
00576
00577
00578 public org.andromda.metafacades.uml.TypeMappings getLanguageMappings()
00579 {
00580 return this.getSuperClassifierFacade().getLanguageMappings();
00581 }
00582
00583
00584 public org.andromda.metafacades.uml.ModelFacade getModel()
00585 {
00586 return this.getSuperClassifierFacade().getModel();
00587 }
00588
00589
00590 public java.lang.String getName()
00591 {
00592 return this.getSuperClassifierFacade().getName();
00593 }
00594
00595
00596 public org.andromda.metafacades.uml.ModelElementFacade getPackage()
00597 {
00598 return this.getSuperClassifierFacade().getPackage();
00599 }
00600
00601
00602 public java.lang.String getPackageName(boolean modelName)
00603 {
00604 return this.getSuperClassifierFacade().getPackageName(modelName);
00605 }
00606
00607
00608 public java.lang.String getPackageName()
00609 {
00610 return this.getSuperClassifierFacade().getPackageName();
00611 }
00612
00613
00614 public java.lang.String getPackagePath()
00615 {
00616 return this.getSuperClassifierFacade().getPackagePath();
00617 }
00618
00619
00620 public org.andromda.metafacades.uml.PackageFacade getRootPackage()
00621 {
00622 return this.getSuperClassifierFacade().getRootPackage();
00623 }
00624
00625
00626 public java.util.Collection getSourceDependencies()
00627 {
00628 return this.getSuperClassifierFacade().getSourceDependencies();
00629 }
00630
00631
00632 public org.andromda.metafacades.uml.StateMachineFacade getStateMachineContext()
00633 {
00634 return this.getSuperClassifierFacade().getStateMachineContext();
00635 }
00636
00637
00638 public java.util.Collection getStereotypeNames()
00639 {
00640 return this.getSuperClassifierFacade().getStereotypeNames();
00641 }
00642
00643
00644 public java.util.Collection getStereotypes()
00645 {
00646 return this.getSuperClassifierFacade().getStereotypes();
00647 }
00648
00649
00650 public java.util.Collection getTaggedValues()
00651 {
00652 return this.getSuperClassifierFacade().getTaggedValues();
00653 }
00654
00655
00656 public java.util.Collection getTargetDependencies()
00657 {
00658 return this.getSuperClassifierFacade().getTargetDependencies();
00659 }
00660
00661
00662 public java.lang.Object getTemplateParameter(java.lang.String parameterName)
00663 {
00664 return this.getSuperClassifierFacade().getTemplateParameter(parameterName);
00665 }
00666
00667
00668 public java.util.Collection getTemplateParameters()
00669 {
00670 return this.getSuperClassifierFacade().getTemplateParameters();
00671 }
00672
00673
00674 public java.lang.String getVisibility()
00675 {
00676 return this.getSuperClassifierFacade().getVisibility();
00677 }
00678
00679
00680 public boolean hasExactStereotype(java.lang.String stereotypeName)
00681 {
00682 return this.getSuperClassifierFacade().hasExactStereotype(stereotypeName);
00683 }
00684
00685
00686 public boolean hasStereotype(java.lang.String stereotypeName)
00687 {
00688 return this.getSuperClassifierFacade().hasStereotype(stereotypeName);
00689 }
00690
00691
00692 public boolean isBindingDependenciesPresent()
00693 {
00694 return this.getSuperClassifierFacade().isBindingDependenciesPresent();
00695 }
00696
00697
00698 public boolean isConstraintsPresent()
00699 {
00700 return this.getSuperClassifierFacade().isConstraintsPresent();
00701 }
00702
00703
00704 public boolean isTemplateParametersPresent()
00705 {
00706 return this.getSuperClassifierFacade().isTemplateParametersPresent();
00707 }
00708
00709
00710 public java.lang.String translateConstraint(java.lang.String name, java.lang.String translation)
00711 {
00712 return this.getSuperClassifierFacade().translateConstraint(name, translation);
00713 }
00714
00715
00716 public java.lang.String[] translateConstraints(java.lang.String translation)
00717 {
00718 return this.getSuperClassifierFacade().translateConstraints(translation);
00719 }
00720
00721
00722 public java.lang.String[] translateConstraints(java.lang.String kind, java.lang.String translation)
00723 {
00724 return this.getSuperClassifierFacade().translateConstraints(kind, translation);
00725 }
00726
00730 public void initialize()
00731 {
00732 this.getSuperClassifierFacade().initialize();
00733 }
00734
00738 public Object getValidationOwner()
00739 {
00740 Object owner = this.getSuperClassifierFacade().getValidationOwner();
00741 return owner;
00742 }
00743
00747 public String getValidationName()
00748 {
00749 String name = this.getSuperClassifierFacade().getValidationName();
00750 return name;
00751 }
00752
00756 public void validateInvariants(java.util.Collection validationMessages)
00757 {
00758 this.getSuperClassifierFacade().validateInvariants(validationMessages);
00759 {
00760 final java.lang.Object contextElement = this.THIS(); boolean constraintValid = org.andromda.translation.ocl.validation.OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.AlternativeKey)).booleanValue();}})))).booleanValue()?org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.Key)).booleanValue();}})):true));
00761 if (!constraintValid)
00762 validationMessages.add(
00763 new org.andromda.core.metafacade.ModelValidationMessage(
00764 (org.andromda.core.metafacade.MetafacadeBase)contextElement ,
00765 "org::andromda::cartridges::arc::metafacades::ARC_ClassifierFacade::AlternativeKey Check",
00766 "If you have set a AlternativeKey in your class then your class must have a Key."));
00767 }
00768 {
00769 final java.lang.Object contextElement = this.THIS(); boolean constraintValid = org.andromda.translation.ocl.validation.OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.WeakKey)).booleanValue();}})))).booleanValue()?org.andromda.translation.ocl.validation.OCLCollections.isEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.Key)).booleanValue();}})):true));
00770 if (!constraintValid)
00771 validationMessages.add(
00772 new org.andromda.core.metafacade.ModelValidationMessage(
00773 (org.andromda.core.metafacade.MetafacadeBase)contextElement ,
00774 "org::andromda::cartridges::arc::metafacades::ARC_ClassifierFacade::WeakKey Check 1",
00775 "If you have a WeakKey on your class you can NOT have a Key defined."));
00776 }
00777 {
00778 final java.lang.Object contextElement = this.THIS(); boolean constraintValid = org.andromda.translation.ocl.validation.OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.WeakKey)).booleanValue();}})))).booleanValue()?org.andromda.translation.ocl.validation.OCLExpressions.equal(org.andromda.translation.ocl.validation.OCLCollections.size(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"associationEnds"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"many2One"))).booleanValue()&&Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"otherEnd.composition"))).booleanValue())).booleanValue();}})),1):true));
00779 if (!constraintValid)
00780 validationMessages.add(
00781 new org.andromda.core.metafacade.ModelValidationMessage(
00782 (org.andromda.core.metafacade.MetafacadeBase)contextElement ,
00783 "org::andromda::cartridges::arc::metafacades::ARC_ClassifierFacade::WeakKey Check 2",
00784 "There must be one and only one composition \"many to one\" from the weak class."));
00785 }
00786 {
00787 final java.lang.Object contextElement = this.THIS(); boolean constraintValid = org.andromda.translation.ocl.validation.OCLResultEnsurer.ensure((Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.WeakKey)).booleanValue();}})))).booleanValue()?org.andromda.translation.ocl.validation.OCLCollections.forAll(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(contextElement,"associationEnds"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"many2One"))).booleanValue()&&Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"otherEnd.composition"))).booleanValue())).booleanValue();}}),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"otherEnd.type.attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.WeakKey)).booleanValue();}}))||org.andromda.translation.ocl.validation.OCLCollections.notEmpty(org.andromda.translation.ocl.validation.OCLCollections.select(org.andromda.translation.ocl.validation.OCLIntrospector.invoke(object,"otherEnd.type.attributes"),new org.apache.commons.collections.Predicate(){public boolean evaluate(java.lang.Object object){return Boolean.valueOf(String.valueOf(object instanceof org.andromda.cartridges.arc.metafacades.Key)).booleanValue();}})))).booleanValue();}}):true));
00788 if (!constraintValid)
00789 validationMessages.add(
00790 new org.andromda.core.metafacade.ModelValidationMessage(
00791 (org.andromda.core.metafacade.MetafacadeBase)contextElement ,
00792 "org::andromda::cartridges::arc::metafacades::ARC_ClassifierFacade::WeakKey Check 3",
00793 "A weak class must be a composition of weak class or a class with key."));
00794 }
00795 }
00796
00800 private static final String NAME_PROPERTY = "name";
00801
00805 public String toString()
00806 {
00807 final StringBuffer toString = new StringBuffer(this.getClass().getName());
00808 toString.append("[");
00809 try
00810 {
00811 toString.append(org.andromda.core.common.Introspector.instance().getProperty(this, NAME_PROPERTY));
00812 }
00813 catch (final Throwable throwable)
00814 {
00815
00816 }
00817 toString.append("]");
00818 return toString.toString();
00819 }
00820 }