123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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 org.apache.poi.xssf.usermodel.helpers;
-
- import org.apache.poi.util.Internal;
- import org.apache.poi.util.Removal;
- import org.apache.poi.xssf.usermodel.XSSFTable;
- import org.apache.poi.xssf.usermodel.XSSFTableColumn;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXmlColumnPr;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum;
-
- /**
- *
- * This class is a wrapper around the CTXmlColumnPr (Open Office XML Part 4:
- * chapter 3.5.1.7)
- *
- *
- * @author Roberto Manicardi
- */
- public class XSSFXmlColumnPr {
-
- private XSSFTable table;
- private XSSFTableColumn tableColumn;
- private CTXmlColumnPr ctXmlColumnPr;
-
- /**
- * Create a new XSSFXmlColumnPr (XML column properties) wrapper around a
- * CTXmlColumnPr.
- *
- * @param tableColumn
- * table column for which the XML column properties are set
- * @param ctXmlColumnPr
- * the XML column properties xmlbean to wrap
- */
- @Internal
- public XSSFXmlColumnPr(XSSFTableColumn tableColumn, CTXmlColumnPr ctXmlColumnPr) {
- this.table = tableColumn.getTable();
- this.tableColumn = tableColumn;
- this.ctXmlColumnPr = ctXmlColumnPr;
- }
-
- @Deprecated
- @Removal(version="4.2")
- public XSSFXmlColumnPr(XSSFTable table, CTTableColumn ctTableColum, CTXmlColumnPr ctXmlColumnPr) {
- this.table = table;
- this.tableColumn = table.getColumns().get(table.findColumnIndex(ctTableColum.getName()));
- this.ctXmlColumnPr = ctXmlColumnPr;
- }
-
- /**
- * Get the column for which these XML column properties are set.
- *
- * @return the table column
- * @since 4.0.0
- */
- public XSSFTableColumn getTableColumn() {
- return tableColumn;
- }
-
- public long getMapId() {
- return ctXmlColumnPr.getMapId();
- }
-
- public String getXPath() {
- return ctXmlColumnPr.getXpath();
- }
-
- /**
- * (see Open Office XML Part 4: chapter 3.5.1.3)
- *
- * @deprecated Use {@link XSSFTableColumn#getId()} instead.
- *
- * @return An integer representing the unique identifier of this column.
- */
- @Deprecated
- @Removal(version="4.2")
- public long getId() {
- return tableColumn.getId();
- }
-
- /**
- * If the XPath is, for example, /Node1/Node2/Node3 and /Node1/Node2 is the common XPath for the table, the local XPath is /Node3
- *
- * @return the local XPath
- */
- public String getLocalXPath() {
- StringBuilder localXPath = new StringBuilder();
- int numberOfCommonXPathAxis = table.getCommonXpath().split("/").length-1;
-
- String[] xPathTokens = ctXmlColumnPr.getXpath().split("/");
- for (int i = numberOfCommonXPathAxis; i < xPathTokens.length; i++) {
- localXPath.append("/" + xPathTokens[i]);
- }
- return localXPath.toString();
- }
-
- public Enum getXmlDataType() {
-
- return ctXmlColumnPr.getXmlDataType();
- }
-
- }
|