1 /*
2 ServiceLocationEnumeration.java
3
4 (C) Copyright IBM Corp. 2005, 2009
5
6 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
7 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
8 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
9
10 You can obtain a current copy of the Eclipse Public License from
11 http://www.opensource.org/licenses/eclipse-1.0.php
12
13 @author : Roberto Pineiro, IBM, roberto.pineiro@us.ibm.com
14 * @author : Chung-hao Tan, IBM, chungtan@us.ibm.com
15 *
16 * Change History
17 * Flag Date Prog Description
18 *-------------------------------------------------------------------------------
19 * 1516246 2006-07-22 lupusalex Integrate SLP client code
20 * 1949918 2008-04-08 raman_arora Malformed service URL crashes SLP discovery
21 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
22 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
23 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
24 */
25
26 package org.metricshub.wbem.sblim.slp;
27
28 /*-
29 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
30 * WBEM Java Client
31 * ჻჻჻჻჻჻
32 * Copyright 2023 - 2025 MetricsHub
33 * ჻჻჻჻჻჻
34 * Licensed under the Apache License, Version 2.0 (the "License");
35 * you may not use this file except in compliance with the License.
36 * You may obtain a copy of the License at
37 *
38 * http://www.apache.org/licenses/LICENSE-2.0
39 *
40 * Unless required by applicable law or agreed to in writing, software
41 * distributed under the License is distributed on an "AS IS" BASIS,
42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43 * See the License for the specific language governing permissions and
44 * limitations under the License.
45 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
46 */
47
48 import java.util.Enumeration;
49 import java.util.NoSuchElementException;
50
51 /**
52 * The ServiceLocationEnumeration class is the return type for all Locator SLP
53 * operations. The Java API library may implement this class to block until
54 * results are available from the SLP operation, so that the client can achieve
55 * asynchronous operation by retrieving results from the enumeration in a
56 * separate thread. Clients use the superclass nextElement() method if they are
57 * unconcerned with SLP exceptions (this method will never ever throw one).
58 */
59 public interface ServiceLocationEnumeration extends Enumeration<Object> {
60 /**
61 * Return the next value or block until it becomes available.
62 *
63 * @return The next value
64 * @throws ServiceLocationException
65 * Thrown if the SLP operation encounters an error.
66 * @throws NoSuchElementException
67 * If there are no more elements to return.
68 */
69 public abstract Object next() throws ServiceLocationException, NoSuchElementException;
70
71 /**
72 * @return next Object in Exception table
73 * @throws NoSuchElementException
74 *
75 * This in internal implementation to get list of all exceptions
76 * thrown/caught by parser This can throw RuntimeExceptions.
77 * They can be ignored or used for analysis.
78 *
79 * use hasNextException to check whether there exists another
80 * element in Exception table
81 */
82 public abstract Object nextException() throws NoSuchElementException;
83
84 /**
85 * @return true if there exists another element in Exception table
86 *
87 */
88 public abstract boolean hasMoreExceptions();
89 }