View Javadoc

1   /* 
2    * Copyright (c) 2007, Fraunhofer-Gesellschaft
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are
7    * met:
8    * 
9    * (1) Redistributions of source code must retain the above copyright
10   *     notice, this list of conditions and the disclaimer at the end.
11   *     Redistributions in binary form must reproduce the above copyright
12   *     notice, this list of conditions and the following disclaimer in
13   *     the documentation and/or other materials provided with the
14   *     distribution.
15   * 
16   * (2) Neither the name of Fraunhofer nor the names of its
17   *     contributors may be used to endorse or promote products derived
18   *     from this software without specific prior written permission.
19   * 
20   * DISCLAIMER
21   * 
22   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26   * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33   *  
34   */
35  package org.ogf.graap.wsag.wsrf.impl;
36  
37  import javax.xml.namespace.QName;
38  
39  import org.apache.muse.ws.resource.faults.ResourceUnavailableFault;
40  import org.apache.muse.ws.resource.faults.ResourceUnknownFault;
41  import org.ogf.graap.wsag.wsrf.WSAG4JCapability;
42  import org.ogf.graap.wsag.wsrf.faults.AgreementFactoryFault;
43  import org.ogf.schemas.graap.wsAgreement.AcceptAgreementInputDocument;
44  import org.ogf.schemas.graap.wsAgreement.AcceptAgreementResponseDocument;
45  import org.ogf.schemas.graap.wsAgreement.AgreementAcceptanceOutputType;
46  import org.ogf.schemas.graap.wsAgreement.RejectAgreementInputDocument;
47  import org.ogf.schemas.graap.wsAgreement.RejectAgreementResponseDocument;
48  
49  /**
50   * Implementation of the WS-Agreement Acceptance port type.
51   * 
52   * @author Oliver Waeldrich
53   * 
54   */
55  public class AgreementAcceptanceCapability extends WSAG4JCapability
56  {
57  
58      /**
59       * This port type does not implement any resource properties.
60       * 
61       * @return the WSRF resource properties QNames
62       */
63      public QName[] getPropertyNames()
64      {
65          return new QName[0];
66      }
67  
68      /**
69       * Notification of an agreement offer acceptance.
70       * 
71       * @param input
72       *            the input document
73       * 
74       * @return the response document
75       * 
76       * @throws AgreementFactoryFault
77       *             exception calling the acceptance handler
78       * 
79       * @throws ResourceUnknownFault
80       *             the referenced resource is not known
81       * 
82       * @throws ResourceUnavailableFault
83       *             the referenced resource is unavailable
84       */
85      public AgreementAcceptanceOutputType acceptAgreement( AcceptAgreementInputDocument input )
86          throws AgreementFactoryFault, ResourceUnknownFault, ResourceUnavailableFault
87      {
88          AgreementAcceptanceWsResource acceptanceWsResource = (AgreementAcceptanceWsResource) getResource();
89          acceptanceWsResource.getAcceptanceHandler().accept();
90  
91          return AcceptAgreementResponseDocument.Factory.newInstance().addNewAcceptAgreementResponse();
92      }
93  
94      /**
95       * Notification of an agreement offer rejection.
96       * 
97       * @param input
98       *            the input document
99       * 
100      * @return the response document
101      * 
102      * @throws AgreementFactoryFault
103      *             exception calling the acceptance handler
104      * 
105      * @throws ResourceUnknownFault
106      *             the referenced resource is not known
107      * 
108      * @throws ResourceUnavailableFault
109      *             the referenced resource is unavailable
110      */
111     public AgreementAcceptanceOutputType rejectAgreement( RejectAgreementInputDocument input )
112         throws AgreementFactoryFault, ResourceUnknownFault, ResourceUnavailableFault
113     {
114         AgreementAcceptanceWsResource acceptanceWsResource = (AgreementAcceptanceWsResource) getResource();
115         acceptanceWsResource.getAcceptanceHandler().reject();
116 
117         return RejectAgreementResponseDocument.Factory.newInstance().addNewRejectAgreementResponse();
118     }
119 }