View Javadoc

1   /*
2    * Copyright 2005-2007 The Kuali Foundation
3    * 
4    * 
5    * Licensed under the Educational Community License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    * 
9    * http://www.opensource.org/licenses/ecl2.php
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.kuali.rice.kew.rule;
18  
19  /**
20   * Helper class that encapsulates a qualified rolename, and can encode and decode to String representation.
21   * 
22   * @author Kuali Rice Team (rice.collab@kuali.org)
23   */
24  public class QualifiedRoleName {
25      private final String baseRoleName;
26      private final String qualifier;
27  
28      public QualifiedRoleName(String baseRoleName) {
29          this(baseRoleName, null);
30      }
31      public QualifiedRoleName(String baseRoleName, String qualifier) {
32          this.baseRoleName = baseRoleName;
33          this.qualifier = qualifier;
34      }
35      public String getBaseRoleName() {
36          return baseRoleName;
37      }
38      public String getQualifier() {
39          return qualifier;
40      }
41      public String encode() {
42          if (qualifier == null) {
43              return baseRoleName;
44          } else {
45              return baseRoleName + '\0' + qualifier;
46          }
47      }
48  
49      public static QualifiedRoleName parse(String qualifiedRoleName) {
50          String[] parts = qualifiedRoleName.split("\0", 2);
51          return new QualifiedRoleName(parts[0], parts.length > 1 ? parts[1] : null);
52      }
53  
54      public String toString() {
55          return "[QualifiedRoleName: baseRoleName=" + baseRoleName +
56                                   ", qualifier=" + qualifier + "]";
57      }
58  }