Coverage Report - org.apache.commons.workflow.Descriptor
 
Classes in this File Line Coverage Branch Coverage Complexity
Descriptor
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 1999-2001,2004 The Apache Software Foundation.
 3  
  * 
 4  
  * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0
 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  
 
 17  
 package org.apache.commons.workflow;
 18  
 
 19  
 
 20  
 /**
 21  
  * <p>A <strong>Descriptor</strong> is a description of the mechanism by which
 22  
  * an arbitrary Java object (typically a JavaBean) is referenced.  The
 23  
  * following reference methods are supported, and are processed in the
 24  
  * order specified here:</p>
 25  
  * <ul>
 26  
  * <li>If the <code>xpath</code> property is set, it is used as an XPath
 27  
  *     expression identifying the requested object.</li>
 28  
  * <li>If the <code>name</code> (and optional <code>scope</code>) properties
 29  
  *     are specified, they are used to select a particular named bean,
 30  
  *     optionally found in a particular named scope.</li>
 31  
  * <li>If none of the conditions above are satisfied, the top object on the
 32  
  *     evaluation stack of our current <code>Context</code> is consumed.</li>
 33  
  * </ul>
 34  
  *
 35  
  * @version $Revision: 155475 $ $Date: 2005-02-26 13:31:11 +0000 (Sat, 26 Feb 2005) $
 36  
  * @author Craig R. McClanahan
 37  
  */
 38  
 
 39  
 public interface Descriptor {
 40  
 
 41  
 
 42  
     // ------------------------------------------------------------- Properties
 43  
 
 44  
 
 45  
     /**
 46  
      * Return the name of the Java object (in some scope) referenced by
 47  
      * this Descriptor.
 48  
      */
 49  
     public String getName();
 50  
 
 51  
 
 52  
     /**
 53  
      * Set the name of the Java object (in some scope) referenced by
 54  
      * this Descriptor.
 55  
      *
 56  
      * @param name The new object name
 57  
      */
 58  
     public void setName(String name);
 59  
 
 60  
 
 61  
     /**
 62  
      * Return the scope of the Java object referenced by this Descriptor.
 63  
      */
 64  
     public String getScope();
 65  
 
 66  
 
 67  
     /**
 68  
      * Set the scope of the Java object referenced by this Descriptor.
 69  
      *
 70  
      * @param scope The new scope name
 71  
      */
 72  
     public void setScope(String scope);
 73  
 
 74  
 
 75  
     /**
 76  
      * Return the optional Java class expected by this Descriptor.
 77  
      */
 78  
     public Class getType();
 79  
 
 80  
 
 81  
     /**
 82  
      * Set the optional Java class expected by this Descriptor.
 83  
      *
 84  
      * @param type The new expected type
 85  
      */
 86  
     public void setType(Class type);
 87  
 
 88  
 
 89  
     /**
 90  
      * Return the XPath expression used to access the Java object
 91  
      * referenced by this Descriptor.
 92  
      */
 93  
     public String getXpath();
 94  
 
 95  
 
 96  
     /**
 97  
      * Set the XPath expression used to access the Java object
 98  
      * referenced by this Descriptor.
 99  
      *
 100  
      * @param xpath The new XPath expression
 101  
      */
 102  
     public void setXpath(String xpath);
 103  
 
 104  
 
 105  
     // --------------------------------------------------------- Public Methods
 106  
 
 107  
 
 108  
     /**
 109  
      * Return the value specified by this Descriptor from the specified
 110  
      * Context.  If there is no such value, return <code>null</code>.
 111  
      *
 112  
      * @param context Context from which to retrieve this value
 113  
      */
 114  
     public Object get(Context context);
 115  
 
 116  
 
 117  
     /**
 118  
      * <p>Call <code>get()</code> to retrieve the value specified by this
 119  
      * Descriptor, and then return <code>true</code> if this value represents
 120  
      * a positive result; otherwise return <code>false</code>.</p>
 121  
      *
 122  
      * @param context Context from which to retrieve this value
 123  
      */
 124  
     public boolean positive(Context context);
 125  
 
 126  
 
 127  
     /**
 128  
      * Store the value into the destination specified by this Descriptor
 129  
      * in the specified Context, replacing any existing value.
 130  
      *
 131  
      * @param context Context into which to store this value
 132  
      * @param value Object value to be stored
 133  
      */
 134  
     public void put(Context context, Object value);
 135  
 
 136  
 
 137  
     /**
 138  
      * Remove any existing value associated with this Descriptor from the
 139  
      * specified Context.
 140  
      *
 141  
      * @param context Context from which to remove this value.
 142  
      */
 143  
     public void remove(Context context);
 144  
 
 145  
 
 146  
 }