Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
     Licensed to Plutext Pty Ltd under one or more contributor license agreements.  
     
   *  This file is part of docx4j.
  
      docx4j is 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 org.docx4j.convert.out.common;
 
 
This class contains common static functions, that get called from the PDF and HTML xsl-transformations. Methods, that are specific to a certain conversion, get implemented in their corresponding XsltxxxFunction classes.
The normal behaviour is to delegate this functions to the current context, that get's passed in.
 
 public class XsltCommonFunctions {
 	
 	private XsltCommonFunctions() {
 	}
 	
     public static DocumentFragment fontSelector(AbstractWmlConversionContext conversionContext
     		NodeIterator pPrNodeIt,
     		NodeIterator rPrNodeIt,
     		NodeIterator textNodeIt) {
 
 		PPr pPr = null;
 		RPr rPr = null;
 		Text text = null;
     	
 //    	if (rPrNodeIt!=null) 
 		{ 
     		Node n = pPrNodeIt.nextNode(); //It is never null
     		if (n!=null) {
     			try {
         			Unmarshaller u = ..createUnmarshaller();			
         			Object jaxb = u.unmarshal(n);
     				pPr =  (PPr)jaxb;
     			} catch (ClassCastException e) {
     				conversionContext.getLog().error("Couldn't cast  to RPr!");
     			} catch (JAXBException e) {
     				conversionContext.getLog().error(e.getMessage(), e);
 				}        	        			
     		}
     	}
     	
 //    	if (rPrNodeIt!=null) 
 		{ 
     		Node n = rPrNodeIt.nextNode();
     		if (n!=null) {
     			try {
         			Unmarshaller u = ..createUnmarshaller();			
         			Object jaxb = u.unmarshal(n);
     				rPr =  (RPr)jaxb;
     			} catch (ClassCastException e) {
     				conversionContext.getLog().error("Couldn't cast  to RPr!");
     			} catch (JAXBException e) {
     				conversionContext.getLog().error(e.getMessage(), e);
 				}        	        			
     		}
     	}
 		
    		Node n = textNodeIt.nextNode();
    		if (n!=null) {
    			try {
        			Unmarshaller u = ..createUnmarshaller();			
        			Object jaxb = u.unmarshal(n);
    				text =  (Text)jaxb;
    			} catch (ClassCastException e) {
    				conversionContext.getLog().error("Couldn't cast  to Text!");
    			} catch (JAXBException e) {
    				conversionContext.getLog().error(e.getMessage(), e);
				}        	        			
    		}
    	}
    	
    	return (DocumentFragmentconversionContext.getRunFontSelector().fontSelector(pPrrPrtext);
    }


Conversion of Nodes via Models and Converters

Parameters:
context
node
childResults the already transformed node (element) content
Returns:
	public static Node toNode(AbstractWmlConversionContext contextNode nodeNodeList childResults) {
		return context.getWriterRegistry().toNode(contextnodechildResults);
	}

Next number of a footnote

Parameters:
context
Returns:
    public static int getNextFootnoteNumber(AbstractWmlConversionContext context) {
    	return context.getNextFootnoteNumber();
    }
    
	public static Node getFootnote(AbstractWmlConversionContext contextString id) {	
		WordprocessingMLPackage wmlPackage = context.getWmlPackage();
		int pos = Integer.parseInt(id);
		// No @XmlRootElement on CTFtnEdn, so .. 
		CTFtnEdn ftn = (CTFtnEdn)footnotes.getFootnote().get(pos);
		Document d = XmlUtils.marshaltoW3CDomDocumentftn,
				.."footnote",  CTFtnEdn.class );
		if (context.getLog().isDebugEnabled()) {
			context.getLog().debug("Footnote " + id + ": " + XmlUtils.w3CDomNodeToString(d));
		}
		return d;
	}

    
Next number of a endnote

Parameters:
context
Returns:
    public static int getNextEndnoteNumber(AbstractWmlConversionContext context) {
    	return context.getNextEndnoteNumber();
    }
    //=====================================================
    // Handling of the PartTracker
    //=====================================================
	public static void setCurrentPart(AbstractWmlConversionContext contextPart currentPart) {
		context.setCurrentPart(currentPart);
	}
	public static Part getCurrentPart(AbstractWmlConversionContext context) {
		return context.getCurrentPart();
	}
	}
	}
	}
    //=====================================================
    // Keeping track of headers and footers 
    //=====================================================
	// Yuck! Getting rid of as many of these as possible ....
	public static void moveNextSection(AbstractWmlConversionContext context) {
		context.getSections().next();
	}
	public static boolean hasDefaultHeaderOrFooter(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getDefaultHeader()!=null) || 
			   (currentSection.getHeaderFooterPolicy().getDefaultFooter()!=null);     		
	}
	public static boolean hasFirstHeader(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getFirstHeader() != null);
	}
	public static boolean hasEvenHeader(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getEvenHeader() != null);
	}
	public static boolean hasDefaultHeader(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getDefaultHeader() != null);
	}
	public static boolean hasFirstFooter(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getFirstFooter() != null);
	}
	public static boolean hasEvenFooter(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getEvenFooter() != null);
	}
	public static boolean hasDefaultFooter(AbstractWmlConversionContext context) {
		return (currentSection.getHeaderFooterPolicy().getDefaultFooter() != null);
	}
	public static Node getFirstHeader(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(hdr);
	}
	public static Node getFirstFooter(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(ftr);
	}
	public static Node getEvenHeader(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(hdr);
	}
	public static Node getEvenFooter(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(ftr);
	}
	public static Node getDefaultHeader(AbstractWmlConversionContext context) {		
		return XmlUtils.marshaltoW3CDomDocument(hdr);
	}
		return XmlUtils.marshaltoW3CDomDocument(ftr);
	}
	public static void inFirstHeader(AbstractWmlConversionContext context) {
	}
	public static void inEvenHeader(AbstractWmlConversionContext context) {
		setCurrentPart(contextcurrentSection.getHeaderFooterPolicy().getEvenHeader());
	}
	public static void inDefaultHeader(AbstractWmlConversionContext context) {
	}
	public static void inFirstFooter(AbstractWmlConversionContext context) {
	}
	public static void inEvenFooter(AbstractWmlConversionContext context) {
		setCurrentPart(contextcurrentSection.getHeaderFooterPolicy().getEvenFooter());
	}
	public static void inDefaultFooter(AbstractWmlConversionContext context) {
	}
    //=====================================================
    // Keeping track of footnotes and endnotes 
    //=====================================================
	public static boolean hasEndnotesPart(AbstractWmlConversionContext context) {
	}
	public static Node getEndnotes(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(
	}
	public static boolean hasFootnotesPart(AbstractWmlConversionContext context) {
	}
	public static Node getFootnotes(AbstractWmlConversionContext context) {
		return XmlUtils.marshaltoW3CDomDocument(
	}
    //=====================================================
    // Keeping track of complex field definitions 
    //=====================================================
	public static void updateComplexFieldDefinition(AbstractWmlConversionContext contextNodeIterator fldCharNodeIt) {
	org.docx4j.wml.FldChar field = null;
	Node node = fldCharNodeIt.nextNode();
    	
		try {
			field = (org.docx4j.wml.FldChar)XmlUtils.unmarshal(
						node
catch (JAXBException e1) {
		}			
		STFldCharType fieldCharType = field.getFldCharType();
		if (fieldCharType==null) {
			if (context.getLog().isDebugEnabled()) {
				context.getLog().debug("Ignoring unrecognised: " + XmlUtils.w3CDomNodeToString(node));
			}
else {
			context.updateComplexFieldDefinition(fieldCharType);
		}
	}
	public static boolean isInComplexFieldDefinition(AbstractWmlConversionContext context) {
		return context.isInComplexFieldDefinition();
	}
	//=======================================================
	// Output of (debug) messages into the generated document
	//=======================================================
	public static DocumentFragment notImplemented(AbstractConversionContext contextNodeIterator nodesString message) {
		return context.getMessageWriter().notImplemented(contextnodesmessage);
	}
	public static DocumentFragment message(AbstractConversionContext contextString message) {
		return context.getMessageWriter().message(contextmessage);
	}
    
	//=======================================================
	// Logging support
	//=======================================================
	public static boolean isLoggingEnabled(AbstractConversionContext context) {
		return context.getLog().isDebugEnabled();
	}
	public static void logDebug(AbstractConversionContext contextString message) {
		context.getLog().debug(message);
	}	
	public static void logInfo(AbstractConversionContext contextString message) {
		context.getLog().info(message);
	}	
	public static void logWarn(AbstractConversionContext contextString message) {
		context.getLog().warn(message);
	}
New to GrepCode? Check out our FAQ X