<!DOCTYPE HTML>
<html lang="de">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span><a id="line.1">package org.apache.fulcrum.intake;</a>
<span class="sourceLineNo">002</span><a id="line.2"></a>
<span class="sourceLineNo">003</span><a id="line.3">/*</a>
<span class="sourceLineNo">004</span><a id="line.4"> * Licensed to the Apache Software Foundation (ASF) under one</a>
<span class="sourceLineNo">005</span><a id="line.5"> * or more contributor license agreements.  See the NOTICE file</a>
<span class="sourceLineNo">006</span><a id="line.6"> * distributed with this work for additional information</a>
<span class="sourceLineNo">007</span><a id="line.7"> * regarding copyright ownership.  The ASF licenses this file</a>
<span class="sourceLineNo">008</span><a id="line.8"> * to you under the Apache License, Version 2.0 (the</a>
<span class="sourceLineNo">009</span><a id="line.9"> * "License"); you may not use this file except in compliance</a>
<span class="sourceLineNo">010</span><a id="line.10"> * with the License.  You may obtain a copy of the License at</a>
<span class="sourceLineNo">011</span><a id="line.11"> *</a>
<span class="sourceLineNo">012</span><a id="line.12"> *   http://www.apache.org/licenses/LICENSE-2.0</a>
<span class="sourceLineNo">013</span><a id="line.13"> *</a>
<span class="sourceLineNo">014</span><a id="line.14"> * Unless required by applicable law or agreed to in writing,</a>
<span class="sourceLineNo">015</span><a id="line.15"> * software distributed under the License is distributed on an</a>
<span class="sourceLineNo">016</span><a id="line.16"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</a>
<span class="sourceLineNo">017</span><a id="line.17"> * KIND, either express or implied.  See the License for the</a>
<span class="sourceLineNo">018</span><a id="line.18"> * specific language governing permissions and limitations</a>
<span class="sourceLineNo">019</span><a id="line.19"> * under the License.</a>
<span class="sourceLineNo">020</span><a id="line.20"> */</a>
<span class="sourceLineNo">021</span><a id="line.21"></a>
<span class="sourceLineNo">022</span><a id="line.22">/**</a>
<span class="sourceLineNo">023</span><a id="line.23"> * Base exception thrown by the Intake service.</a>
<span class="sourceLineNo">024</span><a id="line.24"> *</a>
<span class="sourceLineNo">025</span><a id="line.25"> * @author &lt;a href="mailto:quintonm@bellsouth.net"&gt;Quinton McCombs&lt;/a&gt;</a>
<span class="sourceLineNo">026</span><a id="line.26"> * @version $Id$</a>
<span class="sourceLineNo">027</span><a id="line.27"> */</a>
<span class="sourceLineNo">028</span><a id="line.28">public class IntakeError extends Error</a>
<span class="sourceLineNo">029</span><a id="line.29">{</a>
<span class="sourceLineNo">030</span><a id="line.30">    /**</a>
<span class="sourceLineNo">031</span><a id="line.31">     * Serial version id</a>
<span class="sourceLineNo">032</span><a id="line.32">     */</a>
<span class="sourceLineNo">033</span><a id="line.33">    private static final long serialVersionUID = 7594936180163472231L;</a>
<span class="sourceLineNo">034</span><a id="line.34"></a>
<span class="sourceLineNo">035</span><a id="line.35">    /**</a>
<span class="sourceLineNo">036</span><a id="line.36">     * Constructs a new &lt;code&gt;IntakeError&lt;/code&gt; without specified</a>
<span class="sourceLineNo">037</span><a id="line.37">     * detail message.</a>
<span class="sourceLineNo">038</span><a id="line.38">     */</a>
<span class="sourceLineNo">039</span><a id="line.39">    public IntakeError()</a>
<span class="sourceLineNo">040</span><a id="line.40">    {</a>
<span class="sourceLineNo">041</span><a id="line.41">        super();</a>
<span class="sourceLineNo">042</span><a id="line.42">    }</a>
<span class="sourceLineNo">043</span><a id="line.43"></a>
<span class="sourceLineNo">044</span><a id="line.44">    /**</a>
<span class="sourceLineNo">045</span><a id="line.45">     * Constructs a new &lt;code&gt;IntakeError&lt;/code&gt; with specified</a>
<span class="sourceLineNo">046</span><a id="line.46">     * detail message.</a>
<span class="sourceLineNo">047</span><a id="line.47">     *</a>
<span class="sourceLineNo">048</span><a id="line.48">     * @param msg The error message.</a>
<span class="sourceLineNo">049</span><a id="line.49">     */</a>
<span class="sourceLineNo">050</span><a id="line.50">    public IntakeError(String msg)</a>
<span class="sourceLineNo">051</span><a id="line.51">    {</a>
<span class="sourceLineNo">052</span><a id="line.52">        super(msg);</a>
<span class="sourceLineNo">053</span><a id="line.53">    }</a>
<span class="sourceLineNo">054</span><a id="line.54"></a>
<span class="sourceLineNo">055</span><a id="line.55">    /**</a>
<span class="sourceLineNo">056</span><a id="line.56">     * Constructs a new &lt;code&gt;IntakeError&lt;/code&gt; with specified</a>
<span class="sourceLineNo">057</span><a id="line.57">     * nested &lt;code&gt;Throwable&lt;/code&gt;.</a>
<span class="sourceLineNo">058</span><a id="line.58">     *</a>
<span class="sourceLineNo">059</span><a id="line.59">     * @param nested The exception or error that caused this exception</a>
<span class="sourceLineNo">060</span><a id="line.60">     *               to be thrown.</a>
<span class="sourceLineNo">061</span><a id="line.61">     */</a>
<span class="sourceLineNo">062</span><a id="line.62">    public IntakeError(Throwable nested)</a>
<span class="sourceLineNo">063</span><a id="line.63">    {</a>
<span class="sourceLineNo">064</span><a id="line.64">        super(nested);</a>
<span class="sourceLineNo">065</span><a id="line.65">    }</a>
<span class="sourceLineNo">066</span><a id="line.66"></a>
<span class="sourceLineNo">067</span><a id="line.67">    /**</a>
<span class="sourceLineNo">068</span><a id="line.68">     * Constructs a new &lt;code&gt;IntakeError&lt;/code&gt; with specified</a>
<span class="sourceLineNo">069</span><a id="line.69">     * detail message and nested &lt;code&gt;Throwable&lt;/code&gt;.</a>
<span class="sourceLineNo">070</span><a id="line.70">     *</a>
<span class="sourceLineNo">071</span><a id="line.71">     * @param msg    The error message.</a>
<span class="sourceLineNo">072</span><a id="line.72">     * @param nested The exception or error that caused this exception</a>
<span class="sourceLineNo">073</span><a id="line.73">     *               to be thrown.</a>
<span class="sourceLineNo">074</span><a id="line.74">     */</a>
<span class="sourceLineNo">075</span><a id="line.75">    public IntakeError(String msg, Throwable nested)</a>
<span class="sourceLineNo">076</span><a id="line.76">    {</a>
<span class="sourceLineNo">077</span><a id="line.77">        super(msg, nested);</a>
<span class="sourceLineNo">078</span><a id="line.78">    }</a>
<span class="sourceLineNo">079</span><a id="line.79">}</a>




























































</pre>
</div>
</main>
</body>
</html>
