Class XmlContentImporter
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.plugins.webcontentio.xml.XmlContentImporter
-
- All Implemented Interfaces:
ContentImporter
,LogEnabled
,Serviceable
public class XmlContentImporter extends AbstractLogEnabled implements ContentImporter, Serviceable
Default XML content importer
-
-
Field Summary
Fields Modifier and Type Field Description private ContentTypeExtensionPoint
_contentTypeExtensionPoint
private DOMParser
_domParser
private XPathProcessor
_xPathProcessor
-
Constructor Summary
Constructors Constructor Description XmlContentImporter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private <T> Optional<T>
_getSingleAttributeValue(Node valueNode, ElementType<T> type)
private Optional<Binary>
_getSingleBinaryAttributeValue(Node binaryNode)
private <T> Optional<T>
_getSingleDefaultAttributeValue(Node valueNode, ElementType<T> type)
private Optional<Geocode>
_getSingleGeocodeAttributeValue(Node geocodeNode, ElementType<Geocode> type)
private Optional<RichText>
_getSingleRichTextAttributeValue(Node richTextNode)
private void
_importAttribute(ModifiableModelAwareDataHolder dataHolder, ModelItem attributeDefinition, Node attributeNode)
private void
_importAttributes(ModifiableWebContent content, Node xmlContent)
private String
_serializeNode(Node node)
private <T> void
_setAttribute(ModifiableModelAwareDataHolder dataHolder, ElementDefinition<T> attributeDefinition, Node attributeNode)
private void
_setComposite(ModifiableModelAwareDataHolder dataHolder, CompositeDefinition compositeDefinition, Node compositeNode)
private void
_setRepeater(ModifiableModelAwareDataHolder dataHolder, RepeaterDefinition repeaterDefinition, Node repeaterNode)
String[]
getMimeTypes()
Returns all mime types handled by this importer.private Document
getXmlDocFromFile(File file)
void
importContent(File file, ModifiableWebContent content, Map<String,String> params)
Extracts file content and populates the givenContent
.void
postTreatment(ModifiablePage page, Content content, File file)
Post treatment after import processvoid
service(ServiceManager manager)
-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
_domParser
private DOMParser _domParser
-
_xPathProcessor
private XPathProcessor _xPathProcessor
-
_contentTypeExtensionPoint
private ContentTypeExtensionPoint _contentTypeExtensionPoint
-
-
Constructor Detail
-
XmlContentImporter
public XmlContentImporter()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
importContent
public void importContent(File file, ModifiableWebContent content, Map<String,String> params) throws IOException
Description copied from interface:ContentImporter
Extracts file content and populates the givenContent
. Typical usage is to provide a newly created empty Content.- Specified by:
importContent
in interfaceContentImporter
- Parameters:
file
- the source.content
- theContent
to be populated.params
- in/out params to set and get additional data to and from the importer.- Throws:
IOException
- if an error occurs processing the stream.
-
getMimeTypes
public String[] getMimeTypes()
Description copied from interface:ContentImporter
Returns all mime types handled by this importer.- Specified by:
getMimeTypes
in interfaceContentImporter
- Returns:
- all mime types handled by this importer.
-
postTreatment
public void postTreatment(ModifiablePage page, Content content, File file) throws IOException
Description copied from interface:ContentImporter
Post treatment after import process- Specified by:
postTreatment
in interfaceContentImporter
- Parameters:
page
- The created pagecontent
- The created contentfile
- The imported file- Throws:
IOException
- if an error occurred
-
getXmlDocFromFile
private Document getXmlDocFromFile(File file) throws FileNotFoundException, UnsupportedEncodingException, IOException
-
_importAttributes
private void _importAttributes(ModifiableWebContent content, Node xmlContent) throws IOException
- Throws:
IOException
-
_importAttribute
private void _importAttribute(ModifiableModelAwareDataHolder dataHolder, ModelItem attributeDefinition, Node attributeNode) throws IOException
- Throws:
IOException
-
_setRepeater
private void _setRepeater(ModifiableModelAwareDataHolder dataHolder, RepeaterDefinition repeaterDefinition, Node repeaterNode) throws IOException
- Throws:
IOException
-
_setComposite
private void _setComposite(ModifiableModelAwareDataHolder dataHolder, CompositeDefinition compositeDefinition, Node compositeNode) throws IOException
- Throws:
IOException
-
_setAttribute
private <T> void _setAttribute(ModifiableModelAwareDataHolder dataHolder, ElementDefinition<T> attributeDefinition, Node attributeNode) throws IOException
- Throws:
IOException
-
_getSingleAttributeValue
private <T> Optional<T> _getSingleAttributeValue(Node valueNode, ElementType<T> type) throws IOException
- Throws:
IOException
-
_getSingleGeocodeAttributeValue
private Optional<Geocode> _getSingleGeocodeAttributeValue(Node geocodeNode, ElementType<Geocode> type)
-
_getSingleBinaryAttributeValue
private Optional<Binary> _getSingleBinaryAttributeValue(Node binaryNode)
-
_getSingleRichTextAttributeValue
private Optional<RichText> _getSingleRichTextAttributeValue(Node richTextNode) throws IOException
- Throws:
IOException
-
_serializeNode
private String _serializeNode(Node node) throws TransformerException
- Throws:
TransformerException
-
_getSingleDefaultAttributeValue
private <T> Optional<T> _getSingleDefaultAttributeValue(Node valueNode, ElementType<T> type)
-
-