1 /*
2 * Copyright 2005-2008 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.engine.node.var;
18
19 /**
20 * Represents a property that can be accessed relative to a specific "scheme".
21 * Property format: <code>[scheme:]locator</code>
22 * <dl>
23 * <dt>scheme</dt>
24 * <dd>The "scheme" of the property, which is implemented by a PropertyScheme implementation to
25 * resolve the locator to an actual value</dd>
26 * <dt>locator</dt>
27 * <dd>PropertyScheme-implementation-specific property name or URI</dd>
28 * </dl>
29 *
30 * @author Kuali Rice Team (rice.collab@kuali.org)
31 */
32 public final class Property {
33 /**
34 * The property scheme (e.g. var:, url:, file:
35 */
36 public String scheme;
37 /**
38 * The property locator; in the case of a variable it is a name; in the case of a url, a url;
39 * in the case of a file, a file path
40 */
41 public String locator;
42
43 /**
44 * Parses the scheme and locator from a property name/locator string
45 * @param string the property name/locator
46 */
47 public Property(String string) {
48 int i = string.indexOf(':');
49 if (i == -1) {
50 locator = string;
51 } else {
52 if (i > 0) {
53 scheme = string.substring(0, i);
54 }
55 locator = string.substring(i + 1);
56 }
57 }
58
59 /**
60 * Initialized the property with specified scheme and locator
61 * @param scheme the scheme
62 * @param locator the locator
63 */
64 public Property(String scheme, String locator) {
65 this.scheme = scheme;
66 this.locator = locator;
67 }
68
69 public String toString() {
70 return "[Property: scheme=" + scheme + ", locator=" + locator + "]";
71 }
72 }