org.xowl.infra.server.xsp.XSPReplyResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xowl-server-api Show documentation
Show all versions of xowl-server-api Show documentation
Java API for interacting with a remote xOWL Server
/*******************************************************************************
* Copyright (c) 2015 Laurent Wouters
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this program.
* If not, see .
*
* Contributors:
* Laurent Wouters - [email protected]
******************************************************************************/
package org.xowl.infra.server.xsp;
import org.xowl.infra.store.IOUtils;
import org.xowl.infra.store.Serializable;
/**
* Implements a successful reply to a xOWL server request with an object of type T as a response
*
* @param The type of return data
* @author Laurent Wouters
*/
public class XSPReplyResult implements XSPReply {
/**
* The payload
*/
private final T data;
/**
* Gets the payload
*
* @return The payload
*/
public T getData() {
return data;
}
/**
* Initializes this result
*
* @param data The payload
*/
public XSPReplyResult(T data) {
this.data = data;
}
@Override
public boolean isSuccess() {
return true;
}
@Override
public String getMessage() {
return serializedString();
}
@Override
public String serializedString() {
return data == null ? "NO DATA" : data.toString();
}
@Override
public String serializedJSON() {
if (data == null)
return "{ \"isSuccess\": false, \"message\": \"NO DATA\", \"payload\": \"\" }";
if (data instanceof Serializable)
return "{ \"isSuccess\": true, \"message\": \"\", \"payload\": " + ((Serializable) data).serializedJSON() + " }";
return "{ \"isSuccess\": true, \"message\": \"\", \"payload\": \"" + IOUtils.escapeStringJSON(data.toString()) + "\" }";
}
}