View Javadoc
1   /**
2    * Copyright 2005-2016 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kew.engine.node.var;
17  
18  /**
19   * Represents a property that can be accessed relative to a specific "scheme".
20   * Property format: <code>[scheme:]locator</code>
21   * <dl>
22   *   <dt>scheme</dt>
23   *   <dd>The "scheme" of the property, which is implemented by a PropertyScheme implementation to
24   *       resolve the locator to an actual value</dd>
25   *   <dt>locator</dt>
26   *   <dd>PropertyScheme-implementation-specific property name or URI</dd>
27   * </dl>
28   * 
29   * @author Kuali Rice Team (rice.collab@kuali.org)
30   */
31  public final class Property {
32      /**
33       * The property scheme (e.g. var:, url:, file:
34       */
35      public String scheme;
36      /**
37       * The property locator; in the case of a variable it is a name; in the case of a url, a url;
38       * in the case of a file, a file path
39       */
40      public String locator;
41  
42      /**
43       * Parses the scheme and locator from a property name/locator string
44       * @param string the property name/locator
45       */
46      public Property(String string) {
47          int i = string.indexOf(':');
48          if (i == -1) {
49              locator = string;
50          } else {
51              if (i > 0) {
52                  scheme = string.substring(0, i);
53              }
54              locator = string.substring(i + 1);
55          }
56      }
57  
58      /**
59       * Initialized the property with specified scheme and locator
60       * @param scheme the scheme
61       * @param locator the locator
62       */
63      public Property(String scheme, String locator) {
64          this.scheme = scheme;
65          this.locator = locator;
66      }
67  
68      public String toString() {
69          return "[Property: scheme=" + scheme + ", locator=" + locator + "]";
70      }
71  }