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 }