com.yanglb.utilitys.codegen.core.reader.impl.DdlReaderImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.yanglb.utilitys.codegen.core.reader.impl.DdlReaderImpl.java

Source

/**
 * Copyright 2015 yanglb.com
 * 
 * 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.yanglb.utilitys.codegen.core.reader.impl;

import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;

import com.yanglb.utilitys.codegen.converter.TableModelConverter;
import com.yanglb.utilitys.codegen.core.GenFactory;
import com.yanglb.utilitys.codegen.core.model.DdlDetail;
import com.yanglb.utilitys.codegen.core.model.DdlModel;
import com.yanglb.utilitys.codegen.core.model.TableModel;
import com.yanglb.utilitys.codegen.core.reader.BaseModelReader;
import com.yanglb.utilitys.codegen.core.reader.ITableReader;
import com.yanglb.utilitys.codegen.exceptions.CodeGenException;
import com.yanglb.utilitys.codegen.support.SupportGen;

public class DdlReaderImpl extends BaseModelReader<DdlModel> {

    /**
     * ?DBSheet
     * @throws CodeGenException 
     */
    @Override
    protected DdlModel onReader(XSSFSheet sheet) throws CodeGenException {
        DdlModel model = super.onReader(sheet, DdlModel.class);
        XSSFRow row = null;

        // ??
        row = sheet.getRow(1);
        model.setNameSpace(this.getCellStringValue(row.getCell(2)));
        model.setAuthor(this.getCellStringValue(row.getCell(4)));
        model.setVersion(this.getCellStringValue(row.getCell(6)));
        model.setDescription(this.getCellStringValue(row.getCell(8)));
        //      model.setIndex(this.getCellStringValue(row.getCell(8)));
        //      model.setForeign(this.getCellStringValue(row.getCell(12)));

        row = sheet.getRow(2);
        model.setName(this.getCellStringValue(row.getCell(2)));
        model.setResponsibility(this.getCellStringValue(row.getCell(4)));
        model.setRenewDate(this.getCellStringValue(row.getCell(6)));

        // ?
        model.setDetail(this.readerTable(sheet));
        return model;
    }

    /**
     * ?Table
     * @param sheet
     * @return
     * @throws CodeGenException 
     */
    private List<DdlDetail> readerTable(XSSFSheet sheet) throws CodeGenException {
        List<DdlDetail> result = null;

        //  TableReader?
        ITableReader tableReader = GenFactory.createByName(SupportGen.table_reader);
        tableReader.setStartPoint(6, 2);
        TableModel tableModel = tableReader.reader(sheet);

        // TableModel?DdlDetail;
        TableModelConverter<DdlDetail> converter = new TableModelConverter<DdlDetail>();
        result = converter.convert(DdlDetail.class, tableModel);
        return result;
    }
}