com.cedarsoftware.servlet.Envelope.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of json-command-servlet Show documentation
Show all versions of json-command-servlet Show documentation
Command servlet for routing web requests to Spring beans
package com.cedarsoftware.servlet
import groovy.transform.CompileStatic
/**
* @author John DeRegnaucourt ([email protected])
*
* Copyright (c) Cedar Software LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@CompileStatic
class Envelope
{
final boolean status
Throwable exception
Object data
Envelope(Object data, boolean status)
{
if (data instanceof GString)
{
data = data.toString()
}
this.data = data
this.status = status
String message
if (!status)
{
if (data instanceof String)
{
message = data as String
}
else if (data != null)
{
message = data.toString()
}
else
{
message = 'No error data.'
}
this.exception = new IllegalArgumentException(message)
}
}
Envelope(Object data, boolean status, Throwable exception)
{
if (data instanceof GString)
{
data = data.toString()
}
this.data = data
this.status = status
this.exception = exception
}
def asType(Class target)
{
if (Map.isAssignableFrom(target))
{
Map map = new LinkedHashMap()
map.status = status
if (exception)
{
map.exception = exception
}
map.data = data
return map
}
else if (Envelope.isAssignableFrom(target))
{
return this
}
else
{
throw new IllegalArgumentException("Cannot convert Envelope to ${target.name}")
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy