/* ==================================================================== | |
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.xwpf.usermodel; | |
import org.apache.poi.POIXMLDocumentPart; | |
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtPr; | |
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTString; | |
/** | |
* Experimental abstract class that is a base for XWPFSDT and XWPFSDTCell | |
* <p/> | |
* WARNING - APIs expected to change rapidly. | |
* <p/> | |
* These classes have so far been built only for read-only processing. | |
*/ | |
public abstract class AbstractXWPFSDT implements ISDTContents { | |
private final String title; | |
private final String tag; | |
private final IBody part; | |
public AbstractXWPFSDT(CTSdtPr pr, IBody part) { | |
if (pr == null) { | |
title = ""; | |
tag = ""; | |
} else { | |
CTString[] aliases = pr.getAliasArray(); | |
if (aliases != null && aliases.length > 0) { | |
title = aliases[0].getVal(); | |
} else { | |
title = ""; | |
} | |
CTString[] tags = pr.getTagArray(); | |
if (tags != null && tags.length > 0) { | |
tag = tags[0].getVal(); | |
} else { | |
tag = ""; | |
} | |
} | |
this.part = part; | |
} | |
/** | |
* @return first SDT Title | |
*/ | |
public String getTitle() { | |
return title; | |
} | |
/** | |
* @return first SDT Tag | |
*/ | |
public String getTag() { | |
return tag; | |
} | |
/** | |
* @return the content object | |
*/ | |
public abstract ISDTContent getContent(); | |
/** | |
* @return null | |
*/ | |
public IBody getBody() { | |
return null; | |
} | |
/** | |
* @return document part | |
*/ | |
public POIXMLDocumentPart getPart() { | |
return part.getPart(); | |
} | |
/** | |
* @return partType | |
*/ | |
public BodyType getPartType() { | |
return BodyType.CONTENTCONTROL; | |
} | |
/** | |
* @return element type | |
*/ | |
public BodyElementType getElementType() { | |
return BodyElementType.CONTENTCONTROL; | |
} | |
public XWPFDocument getDocument() { | |
return part.getXWPFDocument(); | |
} | |
} |