View Javadoc

1   package org.andromda.cartridges.java.metafacades;
2   
3   import java.util.Iterator;
4   
5   import org.andromda.metafacades.uml.ClassifierFacade;
6   import org.apache.commons.lang.StringUtils;
7   
8   
9   /**
10   * MetafacadeLogic implementation for org.andromda.cartridges.java.metafacades.JavaClass.
11   *
12   * @see org.andromda.cartridges.java.metafacades.JavaClass
13   */
14  public class JavaClassLogicImpl
15      extends JavaClassLogic
16  {
17      public JavaClassLogicImpl(
18          Object metaObject,
19          String context)
20      {
21          super(metaObject, context);
22      }
23  
24      /**
25       * @see org.andromda.cartridges.java.metafacades.JavaClass#getInterfaceImplementationName()
26       */
27      protected java.lang.String handleGetInterfaceImplementationName()
28      {
29          return this.getInterfaceImplementionName().replaceAll(
30              "\\{0\\}",
31              this.getName());
32      }
33  
34      /**
35       * Gets the value of the {@link JavaGlobals#INTERFACE_IMPLEMENTATION_NAME_PATTERN}.
36       *
37       * @return the interface implementation name..
38       */
39      private String getInterfaceImplementionName()
40      {
41          return String.valueOf(this.getConfiguredProperty(JavaGlobals.INTERFACE_IMPLEMENTATION_NAME_PATTERN));
42      }
43  
44      /**
45       * @see org.andromda.cartridges.java.metafacades.JavaClass#getFullyQualifiedInterfaceImplementationName()
46       */
47      protected String handleGetFullyQualifiedInterfaceImplementationName()
48      {
49          final StringBuffer fullName = new StringBuffer();
50          final String packageName = this.getPackageName();
51          if (StringUtils.isNotBlank(packageName))
52          {
53              fullName.append(packageName).append('.');
54          }
55          return fullName.append(this.getInterfaceImplementationName()).toString();
56      }
57  
58      /**
59       * @see org.andromda.cartridges.java.metafacades.JavaClass#isAbstractInterfaceImplementation()
60       */
61      protected boolean handleIsAbstractInterfaceImplementation()
62      {
63          boolean abstractImplementation = !this.getOperations().isEmpty();
64          if (!abstractImplementation)
65          {
66              for (final Iterator iterator = this.getAllGeneralizations().iterator(); iterator.hasNext();)
67              {
68                  final ClassifierFacade classifier = (ClassifierFacade)iterator.next();
69                  abstractImplementation = !classifier.getOperations().isEmpty();
70                  if (abstractImplementation)
71                  {
72                      break;
73                  }
74              }
75          }
76          return abstractImplementation;
77      }
78  }