| /******************************************************************************* |
| * Copyright (c) 2001, 2005 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 |
| * Jens Lukowski/Innoopract - initial renaming/restructuring |
| * |
| *******************************************************************************/ |
| package org.eclipse.wst.sse.core.internal.text; |
| |
| import org.eclipse.jface.text.BadLocationException; |
| import org.eclipse.jface.text.BadPositionCategoryException; |
| import org.eclipse.jface.text.IDocumentListener; |
| import org.eclipse.jface.text.IDocumentPartitioner; |
| import org.eclipse.jface.text.IDocumentPartitioningListener; |
| import org.eclipse.jface.text.IPositionUpdater; |
| import org.eclipse.jface.text.IRegion; |
| import org.eclipse.jface.text.ITypedRegion; |
| import org.eclipse.jface.text.Position; |
| import org.eclipse.jface.text.TypedRegion; |
| import org.eclipse.wst.sse.core.internal.Logger; |
| import org.eclipse.wst.sse.core.internal.NotImplementedException; |
| import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; |
| import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; |
| import org.eclipse.wst.sse.core.internal.provisional.events.IModelAboutToBeChangedListener; |
| import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener; |
| import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; |
| import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; |
| import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; |
| import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; |
| import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextReParser; |
| import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager; |
| |
| |
| /** |
| * Purely a dummy "marker" instance for StructuredDocumentRegions which are |
| * created temorarily in the course of re-parsing. Primarily a place holder, |
| * but can be needed to get text from. |
| */ |
| public class MinimalDocument implements IStructuredDocument { |
| private SubSetTextStore data; |
| |
| /** |
| * Marked private to be sure never created without data being initialized. |
| * |
| */ |
| private MinimalDocument() { |
| super(); |
| } |
| |
| public MinimalDocument(SubSetTextStore initialContents) { |
| this(); |
| data = initialContents; |
| } |
| |
| public void addDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addDocumentChangedListener(IStructuredDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addDocumentChangingListener(IStructuredDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addDocumentListener(IDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addDocumentPartitioningListener(IDocumentPartitioningListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addPosition(Position position) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addPositionCategory(String category) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addPositionUpdater(IPositionUpdater updater) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void addPrenotifiedDocumentListener(IDocumentListener documentAdapter) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void clearReadOnly(int startOffset, int length) { |
| // TODO: this is called from notifier loop inappropriately |
| // throw new NotImplementedException("intentionally not implemented"); |
| } |
| |
| public int computeIndexInCategory(String category, int offset) throws BadLocationException, BadPositionCategoryException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int computeNumberOfLines(String text) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public ITypedRegion[] computePartitioning(int offset, int length) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public boolean containsPosition(String category, int offset, int length) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public boolean containsPositionCategory(String category) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public boolean containsReadOnly(int startOffset, int length) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void fireNewDocument(Object requester) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String get() { |
| String result = null; |
| result = data.get(0, data.getLength()); |
| return result; |
| } |
| |
| public String get(int offset, int length) throws BadLocationException { |
| String result = null; |
| try { |
| result = data.get(offset, length); |
| } catch (StringIndexOutOfBoundsException e) { |
| throw new BadLocationException("offset: " + offset + " length: " + length + "\ndocument length: " + data.getLength()); |
| } |
| return result; |
| } |
| |
| public Object getAdapter(Class adapter) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public char getChar(int offset) throws BadLocationException { |
| return data.get(offset); |
| } |
| |
| public String getContentType(int offset) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IDocumentPartitioner getDocumentPartitioner() { |
| // temp fix |
| return null; |
| // throw new NotImplementedException("intentionally not implemented"); |
| } |
| |
| public EncodingMemento getEncodingMemento() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredDocumentRegion getFirstStructuredDocumentRegion() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredDocumentRegion getLastStructuredDocumentRegion() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String[] getLegalContentTypes() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String[] getLegalLineDelimiters() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getLength() { |
| return data.getLength(); |
| } |
| |
| public String getPreferedLineDelimiter() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String getLineDelimiter(int line) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IRegion getLineInformation(int line) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IRegion getLineInformationOfOffset(int offset) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getLineLength(int line) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getLineOffset(int line) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getLineOfOffset(int offset) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getNumberOfLines() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int getNumberOfLines(int offset, int length) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public RegionParser getParser() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public ITypedRegion getPartition(int offset) throws BadLocationException { |
| Logger.log(Logger.WARNING, "An instance of MinimalDocument was asked for its partition, sometime indicating a deleted region was being accessed."); //$NON-NLS-1$ |
| return new TypedRegion(0,0, "undefined"); //$NON-NLS-1$ |
| //throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String[] getPositionCategories() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public Position[] getPositions(String category) throws BadPositionCategoryException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IPositionUpdater[] getPositionUpdaters() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredDocumentRegion getRegionAtCharacterOffset(int offset) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredDocumentRegionList getRegionList() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredTextReParser getReParser() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String getText() { |
| return data.get(0, data.getLength()); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.sse.core.text.IStructuredDocument#getUndoManager() |
| */ |
| public IStructuredTextUndoManager getUndoManager() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void insertPositionUpdater(IPositionUpdater updater, int index) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void makeReadOnly(int startOffset, int length) { |
| // TODO: this is called from notifier loop inappropriately |
| // throw new NotImplementedException("intentionally not implemented"); |
| } |
| |
| public IStructuredDocument newInstance() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.text.IDocumentExtension#registerPostNotificationReplace(org.eclipse.jface.text.IDocumentListener, |
| * org.eclipse.jface.text.IDocumentExtension.IReplace) |
| */ |
| public void registerPostNotificationReplace(IDocumentListener owner, IReplace replace) throws UnsupportedOperationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removeDocumentAboutToChangeListener(IModelAboutToBeChangedListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removeDocumentChangedListener(IStructuredDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removeDocumentChangingListener(IStructuredDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removeDocumentListener(IDocumentListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removeDocumentPartitioningListener(IDocumentPartitioningListener listener) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removePosition(Position position) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removePosition(String category, Position position) throws BadPositionCategoryException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removePositionCategory(String category) throws BadPositionCategoryException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removePositionUpdater(IPositionUpdater updater) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void removePrenotifiedDocumentListener(IDocumentListener documentAdapter) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void replace(int offset, int length, String text) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| // data.replace(offset, length, text); |
| } |
| |
| public StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.sse.core.text.IStructuredDocument#replaceText(java.lang.Object, |
| * int, int, java.lang.String, boolean) |
| */ |
| public StructuredDocumentEvent replaceText(Object source, int oldStart, int replacementLength, String requestedChange, boolean ignoreReadOnlySetting) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.text.IDocumentExtension#resumePostNotificationProcessing() |
| */ |
| public void resumePostNotificationProcessing() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public int search(int startOffset, String findString, boolean forwardSearch, boolean caseSensitive, boolean wholeWord) throws BadLocationException { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void set(String text) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| // data.set(text); |
| } |
| |
| public void setDocumentPartitioner(IDocumentPartitioner partitioner) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void setEncodingMemento(EncodingMemento encodingMemento) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public void setPreferredLineDelimiter(String delimiter) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public StructuredDocumentEvent setText(Object requester, String allText) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.sse.core.text.IStructuredDocument#setUndoManager(org.eclipse.wst.sse.core.undo.StructuredTextUndoManager) |
| */ |
| public void setUndoManager(IStructuredTextUndoManager undoManager) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.text.IDocumentExtension#startSequentialRewrite(boolean) |
| */ |
| public void startSequentialRewrite(boolean normalize) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.text.IDocumentExtension#stopPostNotificationProcessing() |
| */ |
| public void stopPostNotificationProcessing() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jface.text.IDocumentExtension#stopSequentialRewrite() |
| */ |
| public void stopSequentialRewrite() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public String getLineDelimiter() { |
| return null; |
| } |
| |
| public String getPreferredLineDelimiter() { |
| return null; |
| } |
| |
| public void setLineDelimiter(String delimiter) { |
| |
| } |
| |
| public IStructuredDocumentRegion[] getStructuredDocumentRegions() { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| |
| public IStructuredDocumentRegion[] getStructuredDocumentRegions(int start, int length) { |
| throw new NotImplementedException("intentionally not implemented"); //$NON-NLS-1$ |
| } |
| } |