KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > api > java > source > query > Command


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.api.java.source.query;
21
22 /**
23  * A Command is an action that is invoked on a collection of source files.
24  * Because all source files may not be in memory concurrently, a Command
25  * may be attached, applied, and released several times until all files
26  * have been processed. Here is the pseudo-code of the Command lifecycle:
27  * <pre>
28  * init() // initialize global data
29  * while <i>more source files</i> {
30  * // process one or more source files
31  * attach(QueryEnvironment)
32  * apply()
33  * release()
34  * }
35  * destroy()
36  * </pre>
37  * <p/>
38  */

39 public interface Command {
40
41     /**
42      * Initialize any data that is shared across source file processing
43      * invocations.
44      */

45     void init();
46
47     /**
48      * Attach this Query instance to the specified QueryEnvironment prior
49      * to processing one or more source files.
50      */

51     void attach(QueryEnvironment env);
52
53     /**
54      * Apply this command to the top tree node of the associated
55      * QueryEnvironment.
56      */

57     void apply();
58     
59     /**
60      * Release any instance data created by attach() or the processing of
61      * a set of source files. All references to the attached QueryEnvironment
62      * and its source files must be released.
63      */

64     void release();
65
66     /**
67      * Release any instance data shared by invocations.
68      */

69     void destroy();
70 }
71
Popular Tags