View Javadoc
1   package ca.uhn.fhir.jpa.dao;
2   
3   /*
4    * #%L
5    * HAPI FHIR JPA Server
6    * %%
7    * Copyright (C) 2014 - 2018 University Health Network
8    * %%
9    * Licensed under the Apache License, Version 2.0 (the "License");
10   * you may not use this file except in compliance with the License.
11   * You may obtain a copy of the License at
12   * 
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   * 
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   * #L%
21   */
22  
23  import java.io.ByteArrayInputStream;
24  import java.io.ByteArrayOutputStream;
25  import java.io.IOException;
26  import java.util.zip.GZIPInputStream;
27  import java.util.zip.GZIPOutputStream;
28  
29  import org.apache.commons.io.IOUtils;
30  
31  import ca.uhn.fhir.parser.DataFormatException;
32  
33  public class GZipUtil {
34  
35  	public static String decompress(byte[] theResource) {
36  		GZIPInputStream is;
37  		try {
38  			is = new GZIPInputStream(new ByteArrayInputStream(theResource));
39  			return IOUtils.toString(is, "UTF-8");
40  		} catch (IOException e) {
41  			throw new DataFormatException("Failed to decompress contents", e);
42  		}
43  	}
44  
45  	public static byte[] compress(String theEncoded) {
46  		try {
47  			ByteArrayOutputStream os = new ByteArrayOutputStream();
48  			GZIPOutputStream gos = new GZIPOutputStream(os);
49  			IOUtils.write(theEncoded, gos, "UTF-8");
50  			gos.close();
51  			os.close();
52  			byte[] retVal = os.toByteArray();
53  			return retVal;
54  		} catch (IOException e) {
55  			throw new DataFormatException("Compress contents", e);
56  		}
57  	}
58  
59  }