01: /*
02: * This file or a portion of this file is licensed under the terms of
03: * the Globus Toolkit Public License, found in file GTPL, or at
04: * http://www.globus.org/toolkit/download/license.html. This notice must
05: * appear in redistributions of this file, with or without modification.
06: *
07: * Redistributions of this Software, with or without modification, must
08: * reproduce the GTPL in: (1) the Software, or (2) the Documentation or
09: * some other similar material which is provided with the Software (if
10: * any).
11: *
12: * Copyright 1999-2004 University of Chicago and The University of
13: * Southern California. All rights reserved.
14: */
15: package org.griphyn.cPlanner.parser.pdax;
16:
17: import org.griphyn.cPlanner.partitioner.Partition;
18:
19: /**
20: * This interfaces defines the callback calls from PDAX parsing. A slim
21: * and memory-efficient parser of PDAX is expected to call these callbacks.
22: *
23: * @author Karan Vahi
24: * @version $Revision: 279 $
25: */
26: public interface Callback {
27:
28: /**
29: * Callback when the opening tag was parsed. This contains all
30: * attributes and their raw values within a map. This callback can
31: * also be used to initialize callback-specific resources.
32: *
33: * @param attributes is a map of attribute key to attribute value
34: */
35: public void cbDocument(java.util.Map attributes);
36:
37: /**
38: * Callback for the partition . These partitions are completely
39: * assembled, but each is passed separately.
40: *
41: * @param partition is the PDAX-style partition.
42: */
43: public void cbPartition(Partition partition);
44:
45: /**
46: * Callback for child and parent relationships from section 3.
47: *
48: * @param child is the IDREF of the child element.
49: * @param parents is a list of IDREFs of the included parents.
50: */
51: public void cbParents(String child, java.util.List parents);
52:
53: /**
54: * Callback when the parsing of the document is done. While this state
55: * could also be determined from the return of the invocation of the
56: * parser, that return may be hidden in another place of the code.
57: * This callback can be used to free callback-specific resources.
58: */
59: public void cbDone();
60:
61: /**
62: * Return a object that is constructed during the parsing of the object.
63: * The type of the object that is constructed is determined by the
64: * implementing callback handler. For example, it could be an Adag object
65: * used by Pegasus or a map containing the graph structure of the dax.
66: * The implementing classes should keep a boolean flag that signifies whether
67: * the corresponding object has been created by the implementing class or
68: * not. The variable should be set when the implementing callback handler
69: * deems that it has enough data to construct that object.
70: *
71: * @return the constructed object
72: */
73: public Object getConstructedObject();
74:
75: }
|