package net.sf.eclipsefp.haskell.core.cabalmodel; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import net.sf.eclipsefp.haskell.util.PlatformUtil; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.BadPositionCategoryException; import org.eclipse.jface.text.IDocument; 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; /** * naive implementation of a IDocument, sufficient for Cabal tests * @author JP Moresmau * */ public class TestDocument implements IDocument { private final StringBuilder content; public TestDocument(final String content) { this.content=new StringBuilder(content); } @Override public void addDocumentListener( final IDocumentListener arg0 ) { // TODO Auto-generated method stub } @Override public void addDocumentPartitioningListener( final IDocumentPartitioningListener arg0 ) { // TODO Auto-generated method stub } @Override public void addPosition( final Position arg0 ) throws BadLocationException { // TODO Auto-generated method stub } @Override public void addPosition( final String arg0, final Position arg1 ) throws BadLocationException, BadPositionCategoryException { // TODO Auto-generated method stub } @Override public void addPositionCategory( final String arg0 ) { // TODO Auto-generated method stub } @Override public void addPositionUpdater( final IPositionUpdater arg0 ) { // TODO Auto-generated method stub } @Override public void addPrenotifiedDocumentListener( final IDocumentListener arg0 ) { // TODO Auto-generated method stub } @Override public int computeIndexInCategory( final String arg0, final int arg1 ) throws BadLocationException, BadPositionCategoryException { // TODO Auto-generated method stub return 0; } @Override public int computeNumberOfLines( final String arg0 ) { // TODO Auto-generated method stub return 0; } @Override public ITypedRegion[] computePartitioning( final int arg0, final int arg1 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public boolean containsPosition( final String arg0, final int arg1, final int arg2 ) { // TODO Auto-generated method stub return false; } @Override public boolean containsPositionCategory( final String arg0 ) { // TODO Auto-generated method stub return false; } @Override public String get() { return content.toString(); } @Override public String get( final int offset, final int length ) throws BadLocationException { return content.substring( offset,offset+length); } @Override public char getChar( final int arg0 ) throws BadLocationException { return content.charAt( arg0 ); } @Override public String getContentType( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public IDocumentPartitioner getDocumentPartitioner() { // TODO Auto-generated method stub return null; } @Override public String[] getLegalContentTypes() { // TODO Auto-generated method stub return null; } @Override public String[] getLegalLineDelimiters() { // TODO Auto-generated method stub return null; } @Override public int getLength() { return content.length(); } @Override public String getLineDelimiter( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public IRegion getLineInformation( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public IRegion getLineInformationOfOffset( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public int getLineLength( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return 0; } @Override public int getLineOfOffset( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return 0; } @Override public int getLineOffset( final int line ) throws BadLocationException { try { BufferedReader br=new BufferedReader( new StringReader( content.toString() ) ); String lineContent=br.readLine(); int count=0; int offset=0; while (line>count){ count++; offset+=lineContent.length(); offset+=PlatformUtil.NL.length(); lineContent=br.readLine(); } return offset; } catch (IOException ioe){ ioe.printStackTrace(); } return 0; } @Override public int getNumberOfLines() { try { BufferedReader br=new BufferedReader( new StringReader( content.toString() ) ); String lineContent=br.readLine(); int count=0; while (lineContent!=null){ count++; lineContent=br.readLine(); } return count; } catch (IOException ioe){ ioe.printStackTrace(); } return 0; } @Override public int getNumberOfLines( final int arg0, final int arg1 ) throws BadLocationException { // TODO Auto-generated method stub return 0; } @Override public ITypedRegion getPartition( final int arg0 ) throws BadLocationException { // TODO Auto-generated method stub return null; } @Override public String[] getPositionCategories() { // TODO Auto-generated method stub return null; } @Override public IPositionUpdater[] getPositionUpdaters() { // TODO Auto-generated method stub return null; } @Override public Position[] getPositions( final String arg0 ) throws BadPositionCategoryException { // TODO Auto-generated method stub return null; } @Override public void insertPositionUpdater( final IPositionUpdater arg0, final int arg1 ) { // TODO Auto-generated method stub } @Override public void removeDocumentListener( final IDocumentListener arg0 ) { // TODO Auto-generated method stub } @Override public void removeDocumentPartitioningListener( final IDocumentPartitioningListener arg0 ) { // TODO Auto-generated method stub } @Override public void removePosition( final Position arg0 ) { // TODO Auto-generated method stub } @Override public void removePosition( final String arg0, final Position arg1 ) throws BadPositionCategoryException { // TODO Auto-generated method stub } @Override public void removePositionCategory( final String arg0 ) throws BadPositionCategoryException { // TODO Auto-generated method stub } @Override public void removePositionUpdater( final IPositionUpdater arg0 ) { // TODO Auto-generated method stub } @Override public void removePrenotifiedDocumentListener( final IDocumentListener arg0 ) { // TODO Auto-generated method stub } @Override public void replace( final int offset, final int length, final String text ) throws BadLocationException { content.replace( offset,offset+length,text); } @Override public int search( final int arg0, final String arg1, final boolean arg2, final boolean arg3, final boolean arg4 ) throws BadLocationException { // TODO Auto-generated method stub return 0; } @Override public void set( final String arg0 ) { // TODO Auto-generated method stub } @Override public void setDocumentPartitioner( final IDocumentPartitioner arg0 ) { // TODO Auto-generated method stub } }