Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java')
-rw-r--r--bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java302
1 files changed, 0 insertions, 302 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
deleted file mode 100644
index c1cfcc1502..0000000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.document;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-/**
- */
-public class HTMLConverter {
-
- /**
- */
- public HTMLConverter() {
- super();
-
- }
-
- public void cleanupModel(IDOMModel model) {
- if (model == null)
- return;
-
- HTMLCleanupProcessorImpl processor = new HTMLCleanupProcessorImpl();
- IStructuredCleanupPreferences pref = processor.getCleanupPreferences();
-
- // backup options
- boolean compressEmptyElementTags = pref.getCompressEmptyElementTags();
- boolean insertRequiredAttrs = pref.getInsertRequiredAttrs();
- boolean insertMissingTags = pref.getInsertMissingTags();
- boolean quoteAttrValues = pref.getQuoteAttrValues();
- boolean formatSource = pref.getFormatSource();
- int tagNameCase = pref.getTagNameCase();
- int attrNameCase = pref.getAttrNameCase();
-
- // setup options
- pref.setCompressEmptyElementTags(true);
- pref.setInsertRequiredAttrs(true);
- pref.setInsertMissingTags(true);
- pref.setQuoteAttrValues(true);
- pref.setFormatSource(false);
- if (model.getDocument().isXMLType()) { // XHTML
- pref.setTagNameCase(HTMLCorePreferenceNames.LOWER);
- pref.setAttrNameCase(HTMLCorePreferenceNames.LOWER);
- }
- else {
- pref.setTagNameCase(HTMLCorePreferenceNames.ASIS);
- pref.setAttrNameCase(HTMLCorePreferenceNames.ASIS);
- }
-
- processor.cleanupModel(model);
-
- // set back options
- pref.setCompressEmptyElementTags(compressEmptyElementTags);
- pref.setInsertRequiredAttrs(insertRequiredAttrs);
- pref.setInsertMissingTags(insertMissingTags);
- pref.setQuoteAttrValues(quoteAttrValues);
- pref.setFormatSource(formatSource);
- pref.setTagNameCase(tagNameCase);
- pref.setAttrNameCase(attrNameCase);
- }
-
- /**
- * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
- * publicId: publicId for DOCTYPE declaration
- */
- public void convert(IDOMModel model, String declaration, String publicId) {
- if (model == null)
- return;
- setDeclaration(model, declaration, publicId);
- cleanupModel(model);
- }
-
- /**
- * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
- * publicId: publicId for DOCTYPE declaration
- */
- public void convert(InputStream input, OutputStream output, String declaration, String publicId) throws UnsupportedEncodingException, IOException, CoreException {
- IDOMModel model = readModel(input);
- if (model == null)
- return;
- try {
- convert(model, declaration, publicId);
- writeModel(model, output);
- }
- finally {
- if (model != null)
- model.releaseFromEdit();
- }
- }
-
- /**
- * declaratoin: "data" for XML declaration, such as "version=\"1.0\""
- * publicId: publicId for DOCTYPE declaration
- */
- public void convert(IFile file, String declaration, String publicId) throws IOException, CoreException {
- IDOMModel model = readModel(file);
- if (model == null)
- return;
- try {
- convert(model, declaration, publicId);
- writeModel(model, file);
- }
- finally {
- if (model != null)
- model.releaseFromEdit();
- }
- }
-
- /**
- */
- private static void insertBreak(IDOMModel model, Node node) {
- if (model == null || node == null)
- return;
- if (node.getNodeType() == Node.TEXT_NODE)
- return;
-
- // get delimiter string
- IStructuredDocument structuredDocument = model.getStructuredDocument();
- if (structuredDocument == null)
- return;
- String delim = structuredDocument.getLineDelimiter();
- if (delim == null || delim.length() == 0)
- return;
-
- Node parent = node.getParentNode();
- if (parent == null)
- return;
- Document document = node.getOwnerDocument();
- if (document == null)
- return;
- Text text = document.createTextNode(delim);
- parent.insertBefore(text, node);
- }
-
- /**
- */
- private IDOMModel readModel(InputStream input) throws IOException, UnsupportedEncodingException {
- if (input == null)
- return null;
- // create temporary model
- String id = input.toString() + ".html"; //$NON-NLS-1$
- IModelManager manager = StructuredModelManager.getModelManager();
- IStructuredModel model = manager.getModelForEdit(id, input, null);
- if (!(model instanceof IDOMModel)) {
- if (model != null)
- model.releaseFromEdit();
- return null;
- }
- return (IDOMModel) model;
- }
-
- /**
- */
- private IDOMModel readModel(IFile file) throws IOException, CoreException {
- if (file == null)
- return null;
- IModelManager manager = StructuredModelManager.getModelManager();
- IStructuredModel model = manager.getModelForEdit(file);
- if (!(model instanceof IDOMModel)) {
- if (model != null)
- model.releaseFromEdit();
- return null;
- }
- return (IDOMModel) model;
- }
-
- /**
- */
- public void setDeclaration(IDOMModel model, String declaration, String publicId) {
- if (model == null)
- return;
- IDOMDocument document = model.getDocument();
- if (document == null)
- return;
-
- try {
- model.aboutToChangeModel();
-
- ProcessingInstruction pi = null;
- Node child = document.getFirstChild();
- if (child != null && child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
- String target = child.getNodeName();
- if (target != null && target.equals("xml")) { //$NON-NLS-1$
- pi = (ProcessingInstruction) child;
- child = child.getNextSibling();
- }
- }
- IDOMDocumentType docType = (IDOMDocumentType) document.getDoctype();
-
- if (declaration != null) {
- if (pi != null) {
- pi.setData(declaration);
- }
- else {
- pi = document.createProcessingInstruction("xml", declaration); //$NON-NLS-1$
- document.insertBefore(pi, child);
- insertBreak(model, child);
- }
- }
-
- if (publicId != null) {
- HTMLDocumentTypeEntry entry = HTMLDocumentTypeRegistry.getInstance().getEntry(publicId);
- String name = (entry != null ? entry.getName() : null);
- if (name == null || name.length() == 0)
- name = "HTML"; // default //$NON-NLS-1$
- if (docType != null) {
- if (!name.equals(docType.getName())) { // replace
- Node parent = docType.getParentNode();
- child = docType;
- docType = (IDOMDocumentType) document.createDoctype(name);
- parent.insertBefore(docType, child);
- parent.removeChild(child);
- }
- }
- else {
- docType = (IDOMDocumentType) document.createDoctype(name);
- document.insertBefore(docType, child);
- insertBreak(model, child);
- }
- docType.setPublicId(publicId);
- if (entry != null) {
- String systemId = entry.getSystemId();
- if (systemId != null)
- docType.setSystemId(systemId);
- String namespaceURI = entry.getNamespaceURI();
- if (namespaceURI != null) {
- Element element = document.getDocumentElement();
- if (element != null) {
- element.setAttribute("xmlns", namespaceURI); //$NON-NLS-1$
- }
- }
- }
- }
- }
- finally {
- model.changedModel();
- }
- }
-
- /**
- */
- private void writeModel(IDOMModel model, OutputStream output) throws UnsupportedEncodingException, IOException, CoreException {
- if (model == null || output == null)
- return;
- model.save();
- }
-
- /**
- */
- private void writeModel(IDOMModel model, IFile file) throws IOException, CoreException {
- if (model == null || file == null)
- return;
- IStructuredDocument structuredDocument = model.getStructuredDocument();
- if (structuredDocument == null)
- return;
- //ByteArrayOutputStream output = null;
- ByteArrayInputStream input = null;
- try {
- //output = new
- // ByteArrayOutputStream(structuredDocument.getLength());
- model.save();
- //input = new ByteArrayInputStream(output.toByteArray());
- //file.setContents(input, true, true, null);
- }
- finally {
- // if (output != null)
- // output.close();
- if (input != null)
- input.close();
- }
-
- }
-}

Back to the top