AbstractSerializerBase.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.generic_project.serializer;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.OutputStream;
- import org.openspcoop2.generic_project.exception.SerializerException;
- import org.openspcoop2.generic_project.io.IOUtilities;
- import org.openspcoop2.utils.resources.FileSystemUtilities;
- import org.openspcoop2.utils.xml.PrettyPrintXMLUtils;
- import org.openspcoop2.utils.xml.XMLUtils;
- /**
- * AbstractSerializer
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public abstract class AbstractSerializerBase {
- private void createFile(String fileName) throws Exception{
- File f = new File(fileName);
- if(f.exists()==false){
- IOUtilities.mkdirParentDirectory(fileName);
- boolean create = f.createNewFile();
- if(create==false){
- throw new FileNotFoundException("File ["+fileName+"] cannot exists and creating failure");
- }
- }
- }
-
-
-
- // FileName+Object
- public <T> void objToXml(String fileName,Class<T> c,T object) throws SerializerException{
- objToXml(fileName, c, object, false);
- }
- public <T> void objToXml(String fileName,Class<T> c,T object,boolean pretty) throws SerializerException{
- try{
- this.createFile(fileName);
- this._objToXml(fileName, c, object, pretty);
- }catch(Exception e){
- throw new SerializerException(e);
- }
- }
- protected abstract <T> void _objToXml(String fileName,Class<T> c,T object,boolean pretty) throws Exception;
-
-
- // OutputStream+Object
- public <T> void objToXml(OutputStream out,Class<T> c,T object) throws SerializerException{
- objToXml(out, c, object, false);
- }
- public <T> void objToXml(OutputStream out,Class<T> c,T object,boolean pretty) throws SerializerException{
- try{
- _objToXml(out,c,object,pretty);
- }catch(Exception e){
- throw new SerializerException(e.getMessage(),e);
- }
- }
- protected abstract <T> void _objToXml(OutputStream out,Class<T> c,T object,boolean pretty) throws Exception;
-
- // File+byte[]
- public void objToXml(String fileName,byte[]contenuto) throws SerializerException{
- objToXml(fileName,contenuto,false);
- }
- public void objToXml(String fileName,byte[]contenuto,boolean pretty) throws SerializerException{
- try{
- this.createFile(fileName);
- if(pretty){
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- PrettyPrintXMLUtils.prettyPrintWithTrAX(XMLUtils.getInstance().newDocument(contenuto), bout, false);
- bout.flush();
- bout.close();
- FileSystemUtilities.writeFile(fileName, bout.toByteArray());
- }
- else{
- FileSystemUtilities.writeFile(fileName, contenuto);
- }
- }catch(Exception e){
- throw new SerializerException(e);
- }
- }
-
-
- // ToByteArray
- public <T> byte[] objToXmlAsByteArray(Class<T> c,T object) throws SerializerException{
- return objToXmlAsByteArray(c,object,false);
- }
- public <T> byte[] objToXmlAsByteArray(Class<T> c,T object,boolean pretty) throws SerializerException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this._objToXml(bout, c, object, pretty);
- bout.flush();
- bout.close();
- return bout.toByteArray();
- }catch(Exception e){
- throw new SerializerException(e.getMessage(),e);
- }
- }
-
-
- // ToString
- public <T> String objToXmlAsString(Class<T> c,T object) throws SerializerException{
- return objToXmlAsString(c,object,false);
- }
- public <T> String objToXmlAsString(Class<T> c,T object,boolean pretty) throws SerializerException{
- try{
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- this._objToXml(bout, c, object, pretty);
- bout.flush();
- bout.close();
- return bout.toString();
- }catch(Exception e){
- throw new SerializerException(e.getMessage(),e);
- }
- }
-
-
- }