| /* ==================================================================== |
| 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.xslf.usermodel; |
| |
| import static org.apache.poi.openxml4j.opc.PackageRelationshipTypes.IMAGE_PART; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| import org.apache.poi.ooxml.POIXMLDocument; |
| import org.apache.poi.ooxml.POIXMLRelation; |
| import org.apache.poi.sl.usermodel.PictureData.PictureType; |
| import org.apache.poi.util.Beta; |
| import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| |
| @SuppressWarnings({"unused", "WeakerAccess"}) |
| @Beta |
| public final class XSLFRelation extends POIXMLRelation { |
| /* package */ static final String NS_DRAWINGML = "http://schemas.openxmlformats.org/drawingml/2006/main"; |
| |
| /** |
| * A map to lookup POIXMLRelation by its relation type |
| */ |
| private static final Map<String, XSLFRelation> _table = new HashMap<>(); |
| |
| public static final XSLFRelation MAIN = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" |
| ); |
| |
| public static final XSLFRelation MACRO = new XSLFRelation( |
| "application/vnd.ms-powerpoint.slideshow.macroEnabled.main+xml" |
| ); |
| |
| public static final XSLFRelation MACRO_TEMPLATE = new XSLFRelation( |
| "application/vnd.ms-powerpoint.template.macroEnabled.main+xml" |
| ); |
| |
| public static final XSLFRelation PRESENTATIONML = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml" |
| ); |
| |
| public static final XSLFRelation PRESENTATIONML_TEMPLATE = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml" |
| ); |
| |
| public static final XSLFRelation PRESENTATION_MACRO = new XSLFRelation( |
| "application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml" |
| ); |
| |
| public static final XSLFRelation THEME_MANAGER = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.themeManager+xml" |
| ); |
| |
| public static final XSLFRelation NOTES = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide", |
| "/ppt/notesSlides/notesSlide#.xml", |
| XSLFNotes::new, XSLFNotes::new |
| ); |
| |
| public static final XSLFRelation SLIDE = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.slide+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide", |
| "/ppt/slides/slide#.xml", |
| XSLFSlide::new, XSLFSlide::new |
| ); |
| |
| public static final XSLFRelation SLIDE_LAYOUT = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout", |
| "/ppt/slideLayouts/slideLayout#.xml", |
| null, XSLFSlideLayout::new |
| ); |
| |
| public static final XSLFRelation SLIDE_MASTER = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster", |
| "/ppt/slideMasters/slideMaster#.xml", |
| null, XSLFSlideMaster::new |
| ); |
| |
| public static final XSLFRelation NOTES_MASTER = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster", |
| "/ppt/notesMasters/notesMaster#.xml", |
| XSLFNotesMaster::new, XSLFNotesMaster::new |
| ); |
| |
| public static final XSLFRelation COMMENTS = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.comments+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", |
| "/ppt/comments/comment#.xml", |
| XSLFComments::new, XSLFComments::new |
| ); |
| |
| public static final XSLFRelation COMMENT_AUTHORS = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors", |
| "/ppt/commentAuthors.xml", |
| XSLFCommentAuthors::new, XSLFCommentAuthors::new |
| ); |
| |
| public static final XSLFRelation HYPERLINK = new XSLFRelation( |
| null, |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", |
| null |
| ); |
| |
| public static final XSLFRelation THEME = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.theme+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme", |
| "/ppt/theme/theme#.xml", |
| XSLFTheme::new, XSLFTheme::new |
| ); |
| |
| public static final XSLFRelation VML_DRAWING = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.vmlDrawing", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing", |
| "/ppt/drawings/vmlDrawing#.vml" |
| ); |
| |
| // this is not the same as in XSSFRelation.WORKBOOK, as it is usually used by embedded charts |
| // referencing the original embedded excel workbook |
| public static final XSLFRelation WORKBOOK = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", |
| POIXMLDocument.PACK_OBJECT_REL_TYPE, |
| "/ppt/embeddings/Microsoft_Excel_Worksheet#.xlsx", |
| XSSFWorkbook::new, XSSFWorkbook::new |
| ); |
| |
| public static final XSLFRelation CHART = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", |
| "/ppt/charts/chart#.xml", |
| XSLFChart::new, XSLFChart::new |
| ); |
| |
| public static final XSLFRelation IMAGE_EMF = new XSLFRelation( |
| PictureType.EMF.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.emf", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_WMF = new XSLFRelation( |
| PictureType.WMF.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.wmf", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_PICT = new XSLFRelation( |
| PictureType.PICT.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.pict", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_JPEG = new XSLFRelation( |
| PictureType.JPEG.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.jpeg", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_PNG = new XSLFRelation( |
| PictureType.PNG.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.png", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_DIB = new XSLFRelation( |
| PictureType.DIB.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.dib", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_GIF = new XSLFRelation( |
| PictureType.GIF.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.gif", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_TIFF = new XSLFRelation( |
| PictureType.TIFF.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.tiff", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_EPS = new XSLFRelation( |
| PictureType.EPS.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.eps", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_BMP = new XSLFRelation( |
| PictureType.BMP.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.bmp", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_WPG = new XSLFRelation( |
| PictureType.WPG.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.wpg", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| public static final XSLFRelation IMAGE_WDP = new XSLFRelation( |
| PictureType.WDP.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.wdp", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| |
| public static final XSLFRelation IMAGE_SVG = new XSLFRelation( |
| PictureType.SVG.contentType, |
| IMAGE_PART, |
| "/ppt/media/image#.svg", |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| |
| public static final XSLFRelation IMAGES = new XSLFRelation( |
| null, |
| IMAGE_PART, |
| null, |
| XSLFPictureData::new, XSLFPictureData::new |
| ); |
| |
| public static final XSLFRelation TABLE_STYLES = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles", |
| "/ppt/tableStyles.xml", |
| XSLFTableStyles::new, XSLFTableStyles::new |
| ); |
| |
| public static final XSLFRelation OLE_OBJECT = new XSLFRelation( |
| "application/vnd.openxmlformats-officedocument.oleObject", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", |
| "/ppt/embeddings/oleObject#.bin", |
| XSLFObjectData::new, XSLFObjectData::new |
| ); |
| |
| public static final XSLFRelation FONT = new XSLFRelation( |
| "application/x-fontdata", |
| "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font", |
| "/ppt/fonts/font#.fntdata", |
| XSLFFontData::new, XSLFFontData::new |
| ); |
| |
| |
| private XSLFRelation(String type) { |
| this(type, null, null, null, null); |
| } |
| |
| private XSLFRelation(String type, String rel, String defaultName) { |
| this(type, rel, defaultName, null, null); |
| } |
| |
| private XSLFRelation(String type, String rel, String defaultName, |
| NoArgConstructor noArgConstructor, |
| PackagePartConstructor packagePartConstructor) { |
| super(type, rel, defaultName, noArgConstructor, packagePartConstructor, null); |
| _table.put(rel, this); |
| } |
| |
| /** |
| * Get POIXMLRelation by relation type |
| * |
| * @param rel relation type, for example, |
| * <code>http://schemas.openxmlformats.org/officeDocument/2006/relationships/image</code> |
| * @return registered POIXMLRelation or null if not found |
| */ |
| public static XSLFRelation getInstance(String rel) { |
| return _table.get(rel); |
| } |
| } |