2 * ============LICENSE_START====================================================
4 * ===========================================================================
5 * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6 * ===========================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END====================================================
22 package org.onap.aaf.cadi.util;
24 import java.io.IOException;
25 import java.io.OutputStream;
27 public class JsonOutputStream extends OutputStream {
28 private static final byte[] TWO_SPACE = " ".getBytes();
29 private OutputStream os;
30 private boolean closeable;
31 private int indent = 0;
32 private int prev,ret=0;
34 public JsonOutputStream(OutputStream os) {
35 // Don't close these, or dire consequences.
36 closeable = !os.equals(System.out) && !os.equals(System.err);
41 public void write(int b) throws IOException {
44 if(prev!=',' || (b!='{' && b!='[')) {
46 for(int i=0;i<indent;++i) {
61 for(int i=0;i<indent;++i) {
73 public void resetIndent() {
78 public void flush() throws IOException {
83 public void close() throws IOException {