001 /* 002 * Copyright 2001-2004 The Apache Software Foundation. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package javax.xml.soap; 017 018 import java.util.Iterator; 019 020 /** 021 * A container for <code>DetailEntry</code> objects. <code>DetailEntry</code> 022 * objects give detailed error information that is application-specific and 023 * related to the <code>SOAPBody</code> object that contains it. 024 * <P> 025 * A <code>Detail</code> object, which is part of a <code>SOAPFault</code> 026 * object, can be retrieved using the method <code>SOAPFault.getDetail</code>. 027 * The <code>Detail</code> interface provides two methods. One creates a new 028 * <code>DetailEntry</code> object and also automatically adds it to 029 * the <code>Detail</code> object. The second method gets a list of the 030 * <code>DetailEntry</code> objects contained in a <code>Detail</code> 031 * object. 032 * <P> 033 * The following code fragment, in which <i>sf</i> is a <code>SOAPFault</code> 034 * object, gets its <code>Detail</code> object (<i>d</i>), adds a new 035 * <code>DetailEntry</code> object to <i>d</i>, and then gets a list of all the 036 * <code>DetailEntry</code> objects in <i>d</i>. The code also creates a 037 * <code>Name</code> object to pass to the method <code>addDetailEntry</code>. 038 * The variable <i>se</i>, used to create the <code>Name</code> object, 039 * is a <code>SOAPEnvelope</code> object. 040 * <PRE> 041 * Detail d = sf.getDetail(); 042 * Name name = se.createName("GetLastTradePrice", "WOMBAT", 043 * "http://www.wombat.org/trader"); 044 * d.addDetailEntry(name); 045 * Iterator it = d.getDetailEntries(); 046 * </PRE> 047 */ 048 public interface Detail extends SOAPFaultElement { 049 050 /** 051 * Creates a new <code>DetailEntry</code> object with the given 052 * name and adds it to this <code>Detail</code> object. 053 * @param name a <code>Name</code> object identifying the new <code>DetailEntry</code> object 054 * @return DetailEntry. 055 * @throws SOAPException thrown when there is a problem in adding a DetailEntry object to this Detail object. 056 */ 057 public abstract DetailEntry addDetailEntry(Name name) throws SOAPException; 058 059 /** 060 * Gets a list of the detail entries in this <code>Detail</code> object. 061 * @return an <code>Iterator</code> object over the <code>DetailEntry</code> 062 * objects in this <code>Detail</code> object 063 */ 064 public abstract Iterator getDetailEntries(); 065 }