View Javadoc

    1   /***************************************************************************************
    2    * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved.                 *
    3    * http://aspectwerkz.codehaus.org                                                    *
    4    * ---------------------------------------------------------------------------------- *
    5    * The software in this package is published under the terms of the LGPL license      *
    6    * a copy of which has been included with this distribution in the license.txt file.  *
    7    **************************************************************************************/
    8   package org.codehaus.aspectwerkz;
    9
    10  import org.codehaus.aspectwerkz.exception.DefinitionException;
    11
    12  /***
    13   * Enum containing the different deployment model types.
    14   *
    15   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
    16   */
    17  public final class DeploymentModel {
    18
    19      public static final DeploymentModel PER_JVM = new DeploymentModel("perJVM");
    20      public static final DeploymentModel PER_CLASS = new DeploymentModel("perClass");
    21      public static final DeploymentModel PER_INSTANCE = new DeploymentModel("perInstance");
    22      public static final DeploymentModel PER_TARGET = new DeploymentModel("perTarget");
    23      public static final DeploymentModel PER_THIS = new DeploymentModel("perThis");
    24      public static final DeploymentModel PER_CFLOW = new DeploymentModel("perCflow");
    25      public static final DeploymentModel PER_CFLOWBELOW = new DeploymentModel("perCflowbelow");
    26
    27      private final String m_name;
    28
    29      private DeploymentModel(String name) {
    30          m_name = name;
    31      }
    32
    33      public String toString() {
    34          return m_name;
    35      }
    36
    37      public boolean equals(Object o) {
    38          if (this == o) {
    39              return true;
    40          }
    41          if (!(o instanceof DeploymentModel)) {
    42              return false;
    43          }
    44          final DeploymentModel adviceType = (DeploymentModel) o;
    45          if ((m_name != null) ? (!m_name.equals(adviceType.m_name)) : (adviceType.m_name != null)) {
    46              return false;
    47          }
    48          return true;
    49      }
    50
    51      public int hashCode() {
    52          return ((m_name != null) ? m_name.hashCode() : 0);
    53      }
    54
    55      public static DeploymentModel getDeploymentModelFor(final String deploymentModelAsString) {
    56          if (deploymentModelAsString == null || deploymentModelAsString.equals("")) {
    57              return PER_JVM; // default is PER_JVM
    58          }
    59          if (deploymentModelAsString.equalsIgnoreCase(PER_JVM.toString())) {
    60              return PER_JVM;
    61          } else if (deploymentModelAsString.equalsIgnoreCase(PER_CLASS.toString())) {
    62              return PER_CLASS;
    63          } else if (deploymentModelAsString.equalsIgnoreCase(PER_INSTANCE.toString())) {
    64              return PER_INSTANCE;
    65          } else if (deploymentModelAsString.equalsIgnoreCase(PER_TARGET.toString())) {
    66              return PER_TARGET;
    67          } else if (deploymentModelAsString.equalsIgnoreCase(PER_THIS.toString())) {
    68              return PER_THIS;
    69          } else if (deploymentModelAsString.equalsIgnoreCase(PER_CFLOW.toString())) {
    70              return PER_CFLOW;
    71          } else if (deploymentModelAsString.equalsIgnoreCase(PER_CFLOWBELOW.toString())) {
    72              return PER_CFLOWBELOW;
    73          } else {
    74              System.out.println(
    75                      "AW::WARNING - no such deployment model [" + deploymentModelAsString + "] using default (perJVM)"
    76              );
    77              return PER_JVM; // falling back to default - PER_JVM
    78          }
    79      }
    80  }