diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java')
-rw-r--r-- | bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java deleted file mode 100644 index a7b6f66bf9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 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.format; - - - -final class SpaceConverter { - - private String source = null; - private int length = 0; - private int startOffset = 0; - private int endOffset = 0; - private int spaceCount = 0; - private int wordCount = 0; - private StringBuffer buffer = null; - private int lastOffset = 0; - private boolean keepBlankLines = false; - - /** - */ - public SpaceConverter(String source) { - super(); - - if (source == null) { - this.source = new String(); - } - else { - this.source = source; - this.length = source.length(); - } - } - - /** - */ - public SpaceConverter(String source, boolean keepBlankLines) { - super(); - - if (source == null) { - this.source = new String(); - } - else { - this.source = source; - this.length = source.length(); - } - this.keepBlankLines = keepBlankLines; - } - - /** - */ - public void compressSpaces() { - if (this.spaceCount == 0) - return; - if (this.spaceCount == 1 && this.source.charAt(this.startOffset) == ' ') - return; - - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.startOffset > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.startOffset)); - } - - this.buffer.append(' '); - - this.lastOffset = this.startOffset + this.spaceCount; - } - - /** - */ - public String getSource() { - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.length > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.length)); - } - return this.buffer.toString(); - } - - /** - */ - public int getSpaceCount() { - return this.spaceCount; - } - - /** - */ - public boolean hasSpaces() { - return (this.spaceCount > 0); - } - - /** - */ - public boolean isModified() { - return (this.buffer != null); - } - - /** - * Add number of the old blank lines to new space string - */ - private static String mergeBlankLines(String newSpaces, String oldSpaces) { - if (newSpaces == null || newSpaces.length() == 0) - return newSpaces; - if (oldSpaces == null) - return newSpaces; - - // count old new lines - int newLineCount = 0; - int oldLength = oldSpaces.length(); - for (int i = 0; i < oldLength; i++) { - char c = oldSpaces.charAt(i); - if (c == '\r') { - newLineCount++; - if (i + 1 < oldLength) { - c = oldSpaces.charAt(i + 1); - if (c == '\n') - i++; - } - } - else { - if (c == '\n') - newLineCount++; - } - } - if (newLineCount < 2) - return newSpaces; // no blank line - - // here assuming newSpaces starts with a new line if any - String delim = null; - char d = newSpaces.charAt(0); - if (d == '\r') { - if (newSpaces.length() > 1 && newSpaces.charAt(1) == '\n') - delim = "\r\n";//$NON-NLS-1$ - else - delim = "\r";//$NON-NLS-1$ - } - else { - if (d == '\n') - delim = "\n";//$NON-NLS-1$ - else - return newSpaces; // no new line - } - - newLineCount--; - StringBuffer buffer = new StringBuffer(newSpaces.length() + newLineCount * 2); - while (newLineCount > 0) { - buffer.append(delim); - newLineCount--; - } - buffer.append(newSpaces); - return buffer.toString(); - } - - /** - */ - public int nextWord() { - if (this.endOffset == this.length) { - this.startOffset = this.endOffset; - this.spaceCount = 0; - this.wordCount = 0; - return 0; - } - - this.startOffset = this.endOffset; - int i = this.startOffset; - for (; i < this.length; i++) { - if (!Character.isWhitespace(this.source.charAt(i))) - break; - } - this.spaceCount = i - this.startOffset; - - int wordOffset = i; - for (; i < this.length; i++) { - if (Character.isWhitespace(this.source.charAt(i))) - break; - } - this.wordCount = i - wordOffset; - this.endOffset = i; - - return this.wordCount; - } - - /** - */ - public void replaceSpaces(String spaces) { - int spaceLength = (spaces != null ? spaces.length() : 0); - String oldSpaces = null; - if (spaceLength == this.spaceCount) { - if (spaceLength == 0) - return; - if (this.startOffset == 0) { - if (this.source.startsWith(spaces)) - return; - } - else if (this.endOffset == this.length) { - if (this.source.endsWith(spaces)) - return; - } - else { - int textOffset = this.startOffset + this.spaceCount; - oldSpaces = this.source.substring(this.startOffset, textOffset); - if (oldSpaces.equals(spaces)) - return; - } - } - if (this.keepBlankLines && this.spaceCount > 0) { - if (oldSpaces == null) { - int textOffset = this.startOffset + this.spaceCount; - oldSpaces = this.source.substring(this.startOffset, textOffset); - } - if (oldSpaces != null) { - spaces = mergeBlankLines(spaces, oldSpaces); - } - } - - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.startOffset > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.startOffset)); - } - - if (spaceLength > 0) - this.buffer.append(spaces); - - this.lastOffset = this.startOffset + this.spaceCount; - } -}
\ No newline at end of file |