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;
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;
78 }
79 }
80 }