de.enerko.reports2.engine.CommentDefinition.java Source code

Java tutorial

Introduction

Here is the source code for de.enerko.reports2.engine.CommentDefinition.java

Source

/*
 * Copyright 2013 ENERKO Informatik GmbH
 *
 * 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.
 * 
 * THIS SOFTWARE IS  PROVIDED BY THE  COPYRIGHT HOLDERS AND  CONTRIBUTORS "AS IS"
 * AND ANY  EXPRESS OR  IMPLIED WARRANTIES,  INCLUDING, BUT  NOT LIMITED  TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL  THE COPYRIGHT HOLDER OR CONTRIBUTORS  BE LIABLE
 * FOR ANY  DIRECT, INDIRECT,  INCIDENTAL, SPECIAL,  EXEMPLARY, OR  CONSEQUENTIAL
 * DAMAGES (INCLUDING,  BUT NOT  LIMITED TO,  PROCUREMENT OF  SUBSTITUTE GOODS OR
 * SERVICES; LOSS  OF USE,  DATA, OR  PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE  USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package de.enerko.reports2.engine;

import static de.enerko.reports2.utils.Types.numberToInteger;

import java.sql.SQLException;
import java.sql.Struct;

import org.apache.poi.ss.usermodel.Comment;

/**
 * @author Michael J. Simons, 2013-12-13
 */
public class CommentDefinition {
    public final String text;
    public final String author;
    public final Integer column;
    public final Integer row;
    /** Only used when creating comments */
    public final int width;
    /** Only used when creating comments */
    public final int height;
    public final boolean visible;

    public static CommentDefinition fromStruct(final Struct struct) throws SQLException {
        CommentDefinition rv = null;
        if (struct != null) {
            // Attributes are retrieved as they are declared in t_er_comment_definition
            // could cast to STRUCT and use ResultSetMetaData but i don't see the point
            final Object[] attributes = struct.getAttributes();
            rv = new CommentDefinition((String) attributes[0], (String) attributes[1],
                    numberToInteger((Number) attributes[2]), numberToInteger((Number) attributes[3]),
                    numberToInteger((Number) attributes[4]), numberToInteger((Number) attributes[5]),
                    Boolean.parseBoolean((String) attributes[6]));
        }
        return rv;
    }

    public CommentDefinition(final Comment comment) {
        this(comment.getString().getString(), comment.getAuthor(), comment.getColumn(), comment.getRow(), -1, -1,
                comment.isVisible());
    }

    public CommentDefinition(String text) {
        this(text, System.getProperty("user.name"), null, null, null, null, false);
    }

    public CommentDefinition(String text, String author, final Integer column, final Integer row,
            final Integer width, final Integer height, boolean visible) {
        this.text = text;
        this.author = author;
        this.column = column == null ? null : column;
        this.row = row == null ? null : row;
        this.width = width == null ? 1 : width;
        this.height = height == null ? 1 : height;
        this.visible = visible;
    }

    public Object[] toSQLStructObject() {
        return new Object[] { this.text, this.author, this.column, this.row, this.width, this.height,
                Boolean.toString(this.visible) };
    }
}