com.elbeesee.poink.transreptor.HSSFWorkbookToXML.java Source code

Java tutorial

Introduction

Here is the source code for com.elbeesee.poink.transreptor.HSSFWorkbookToXML.java

Source

/**
 * PoiNK Project : Apache POI for NetKernel.
 * Copyright 2008 by Tohono Consulting LLC. All rights reserved.
 * Copyright 2013 by Elephant Bird Consulting BVBA. All rights reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * 
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

package com.elbeesee.poink.transreptor;

/**
 *
 * Transreptor HSSFWorkbook to XML (string).
 * 
 * @author Tom Hicks. 09/06/2008.
 * @author Tom Geudens. 2013/08/25.
 * 
 */

// The usual suspects for a transreptor.
import org.netkernel.layer0.nkf.*;
import org.netkernel.module.standard.endpoint.StandardTransreptorImpl;

// Processing
import com.elbeesee.poink.representation.IHSSFWorkbookRepresentation;
import com.elbeesee.poink.representation.IHSSFSheetRepresentation;
import com.elbeesee.poink.representation.HSSFSheetImplementation;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class HSSFWorkbookToXML extends StandardTransreptorImpl {
    public HSSFWorkbookToXML() {
        this.declareThreadSafe();
        this.declareDescription("create valid xml from a workbook");
        this.declareFromRepresentation(IHSSFWorkbookRepresentation.class);
        this.declareToRepresentation(String.class);
    }

    public void onTransrept(INKFRequestContext aContext) throws Exception {
        IHSSFWorkbookRepresentation aIHSSFWorkbookRepresentation = (IHSSFWorkbookRepresentation) aContext
                .sourcePrimary(IHSSFWorkbookRepresentation.class);
        HSSFWorkbook vWorkbook = aIHSSFWorkbookRepresentation.getWorkbookReadOnly();

        StringBuilder vWorkbookXML = new StringBuilder();

        int vNumberOfSheets = vWorkbook.getNumberOfSheets();
        vWorkbookXML.append("<workbook numSheets=\"");
        vWorkbookXML.append(vNumberOfSheets);
        vWorkbookXML.append("\">");

        // do the sheets
        for (int i = 0; i < vNumberOfSheets; i++) {
            IHSSFSheetRepresentation vHSSFSheetRepresentation = new HSSFSheetImplementation(
                    vWorkbook.getSheetAt(i));
            String vSheetXML = aContext.transrept(vHSSFSheetRepresentation, String.class);
            vWorkbookXML.append(vSheetXML);
        }
        //

        vWorkbookXML.append("</workbook>");

        INKFResponse vResponse = aContext.createResponseFrom(vWorkbookXML.toString());
        vResponse.setExpiry(INKFResponse.EXPIRY_DEPENDENT);
    }
}