class QueryServiceInfo extends CatalogQuery {

    @Override
    public String JSON2(boolean isArray, boolean isEmbed) {
        if (serviceInfo == null) {
            return "\"serviceInfo\": null";
        }
        StringBuilder sb = new StringBuilder();
        sb.append("\"serviceInfo\": ");
        sb.append("\n");
        Map<String, String> valueMap = new HashMap<>();
        Service service = serviceInfo.getService();
        put(valueMap, "ID", null == serviceInfo ? null : serviceInfo.getId());
        put(valueMap, "SERVICE_INPUT", null == serviceInfo ? null : serviceInfo.getServiceInput());
        put(valueMap, "SERVICE_PROPERTIES", null == serviceInfo ? null : serviceInfo.getServiceProperties());
        String subitem = new QueryServiceArtifact(service.getServiceArtifactList()).JSON2(true, true);
        valueMap.put("_SERVICEARTIFACT_", subitem.replaceAll("(?m)^", "\t\t"));
        sb.append(this.setTemplate(TEMPLATE, valueMap));
        sb.append("}");
        return sb.toString();
    }

    public  QueryServiceInfo();
    public  QueryServiceInfo(List<ServiceInfo> serviceInfos);

}