View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership. The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License. You may obtain a copy of the License at
9    * 
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   * 
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.river.outrigger.proxy;
19  
20  import java.rmi.RemoteException;
21  import net.jini.core.entry.Entry;
22  import net.jini.core.transaction.Transaction;
23  import net.jini.core.transaction.TransactionException;
24  import net.jini.core.constraint.MethodConstraints;
25  import net.jini.space.JavaSpace05;
26  import org.apache.river.admin.AdminIterator;
27  import org.apache.river.admin.JavaSpaceAdmin;
28  
29  /**
30   * Sub-interface of <code>JavaSpaceAdmin</code> that
31   * adds a method that allows iterators to be created with
32   * a given set of constraints.<p>
33   *
34   * @deprecated The {@link JavaSpace05#contents JavaSpace05.contents}
35   *             method can be used to view the space's contents.
36   *
37   * @author Sun Microsystems, Inc.
38   * @since 2.0
39   */
40  public interface ConstrainableJavaSpaceAdmin extends JavaSpaceAdmin {
41      /**
42       * Return an <code>AdminIterator</code> that will iterate over all
43       * the entries in the space that match the given template and are
44       * visible under the given transaction.
45       * <p>
46       * The interactions between other operations on the space and
47       * the returned iterator are undefined
48       * <p>
49       * Note, because this is a convenience method for
50       * <code>contents(Entry, Transaction, int,
51       * MethodConstraints)</code> the constraints associated with
52       * <code>contents(Entry, Transaction, int,
53       * MethodConstraints)</code> are used for any calls though this
54       * method, not the constraints associated with this method.
55       *
56       * @param tmpl The iterator should return only entries that match
57       *             tmpl
58       * @param txn  The iterator should return only entries that match
59       *             this transaction
60       * @throws RemoteException if communications with the
61       *         server is necessary and it can not be completed.
62       * @throws TransactionException if there is a problem with
63       *         <code>txn</code>.
64       * @throws SecurityException If the space is performing 
65       *         access control and it can not be confirmed
66       *         that the subject making this call has permission
67       *         to create an <code>AdminIterator</code> with
68       *         the specified template and transaction.
69       */
70      AdminIterator contents(Entry tmpl, Transaction txn)
71  	throws TransactionException, RemoteException;
72  
73      /**
74       * Return an <code>AdminIterator</code> that will iterate over all
75       * the entries in the space that match the given template and are
76       * visible under the given transaction.
77       * <p>
78       * The interactions between other operations on the space and
79       * the returned iterator are undefined
80       * <p>
81       * Note, because this is a convenience method for
82       * <code>contents(Entry, Transaction, int,
83       * MethodConstraints)</code> the constraints associated with
84       * <code>contents(Entry, Transaction, int,
85       * MethodConstraints)</code> are used for any calls though this
86       * method, not the constraints associated with this method.
87       *
88       * @param tmpl The iterator should return only entries that match
89       *             tmpl
90       * @param txn  The iterator should return only entries that match
91       *             this transaction
92       * @param fetchSize advice on how many entries to fetch when the iterator
93       *             has to go to the server for more entries.
94       * @throws RemoteException if communications with the
95       *         server is necessary and it can not be completed.
96       * @throws TransactionException if there is a problem with
97       *         <code>txn</code>.
98       * @throws SecurityException If the space is performing 
99       *         access control and it can not be confirmed
100      *         that the subject making this call has permission
101      *         to create an <code>AdminIterator</code> with
102      *         the specified template and transaction.
103      * @throws IllegalArgumentException if fetchSize is 
104      *         not postive, or <code>USE_DEFUALT</code>.
105      */
106     AdminIterator contents(Entry tmpl, Transaction txn, int fetchSize)
107 	throws TransactionException, RemoteException;
108 
109     /**
110      * Return an <code>AdminIterator</code> that will iterate over all
111      * the entries in the space that match the given template and are
112      * visible under the given transaction. The returned iterator
113      * will support proxy trust verification and will enforce
114      * the specified <code>MethodConstraints</code>.
115      * <p>
116      * The interactions between other operations on the space and
117      * the returned iterator are undefined
118      * <p>
119      * @param tmpl The iterator should return only entries that match
120      *             tmpl
121      * @param txn  The iterator should return only entries that match
122      *             this transaction
123      * @param fetchSize advice on how many entries to fetch when the 
124      *             iterator has to go to the server for more entries.
125      * @param constrains the <code>MethodConstraints</code> the
126      *             returned proxy should enforce.
127      * @return An object that can be used to iterate over entries
128      *         in the space.
129      * @throws RemoteException if communications with the
130      *         server is necessary and it can not be completed.
131      * @throws TransactionException if there is a problem with
132      *         <code>txn</code>.
133      * @throws SecurityException If the space is performing 
134      *         access control and it can not be confirmed
135      *         that the subject making this call has permission
136      *         to create an <code>AdminIterator</code> with
137      *         the specified template and transaction.
138      * @throws IllegalArgumentException if fetchSize is 
139      *         not postive, or <code>USE_DEFUALT</code>.
140      */
141     AdminIterator contents(Entry tmpl, Transaction txn, int fetchSize,
142 			   MethodConstraints constrains)
143 	throws TransactionException, RemoteException;
144 }