cz.zcu.validationserver.streams
Class StreamComparator

java.lang.Object
  extended by cz.zcu.validationserver.streams.StreamComparator

public class StreamComparator
extends java.lang.Object

Porovnavac dvou streamu

Author:
Lukas Valenta (lukas.valenta@seznam.cz)

Nested Class Summary
static class StreamComparator.EmptyStream
           
 
Field Summary
 boolean compareResult
           
private static Logger logger
           
 java.lang.String resultStr1
           
 java.lang.String resultStr2
           
(package private)  java.io.BufferedInputStream stream1
           
(package private)  java.io.BufferedInputStream stream2
           
(package private)  boolean useResultsStarter1
          zda porovnavat az od okamziku, kdy se najde retezec RESULTS_STARTER (tj. vse pred timto retezcem ve streamu ignorovat)
(package private)  boolean useResultsStarter2
           
(package private)  boolean wasResultsStarter1
           
(package private)  boolean wasResultsStarter2
           
 
Constructor Summary
StreamComparator(java.io.BufferedInputStream stream1, java.io.BufferedInputStream stream2, boolean useResultsStarter1, boolean useResultsStarter2)
           
 
Method Summary
static boolean alternateCompareAtPos(java.lang.String s1, java.lang.String s2, int pos)
          nastala tato situace: Dva vstupni radky porovnavanych streamu (s1,s2) se na pozici "pos" prestaly rovnat.
static boolean alternateCompareTokens(java.lang.String token1, java.lang.String token2)
           
static boolean areSimilarDoubles(java.lang.String token1, java.lang.String token2)
           
 void compareStreams()
          Metoda porovna obsah obou streamu a vraci, zda se rovnaji
static boolean containsOnlyWhitespaces(java.lang.String s)
          Vraci, zda retezec obsahuje pouze bile znaky
 boolean getCompareResult()
           
private static java.lang.String getMyTokenFromStr(java.lang.String s, int pos)
          Pomocna pro alternateCompareAtPos()
 java.lang.String getResultStr1()
           
 java.lang.String getResultStr2()
           
 java.io.BufferedInputStream getStream1()
           
 java.io.BufferedInputStream getStream2()
           
 boolean getUseResultsStarter1()
           
 boolean getUseResultsStarter2()
           
 boolean isWasResultsStarter1()
           
 boolean isWasResultsStarter2()
           
static boolean isWhiteChar(char c)
           
private static java.lang.String readNextLine(java.io.BufferedInputStream in)
           
private  int readNextNonWhiteChar(java.io.InputStream s, int index)
           
private  java.lang.String scrollAfterResultsStarter(java.io.BufferedInputStream s, int streamIndex)
          Metoda jede vstupnim streamem az do okamziku, kdy nacte presne retezec definovany v Constants.RESULTS_STARTER nebo na konec streamu
private static void skipAllNextWhitespaces(java.io.BufferedInputStream s)
          Metoda preskoci vsechny bile znaky ve stremu od act. pozice az k prvnimu nebilemu
static java.lang.String trimRight(java.lang.String s)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logger logger

stream1

java.io.BufferedInputStream stream1

stream2

java.io.BufferedInputStream stream2

useResultsStarter1

boolean useResultsStarter1
zda porovnavat az od okamziku, kdy se najde retezec RESULTS_STARTER (tj. vse pred timto retezcem ve streamu ignorovat)


useResultsStarter2

boolean useResultsStarter2

wasResultsStarter1

boolean wasResultsStarter1

wasResultsStarter2

boolean wasResultsStarter2

compareResult

public boolean compareResult

resultStr1

public java.lang.String resultStr1

resultStr2

public java.lang.String resultStr2
Constructor Detail

StreamComparator

public StreamComparator(java.io.BufferedInputStream stream1,
                        java.io.BufferedInputStream stream2,
                        boolean useResultsStarter1,
                        boolean useResultsStarter2)
Method Detail

compareStreams

public void compareStreams()
Metoda porovna obsah obou streamu a vraci, zda se rovnaji


skipAllNextWhitespaces

private static void skipAllNextWhitespaces(java.io.BufferedInputStream s)
                                    throws java.io.IOException
Metoda preskoci vsechny bile znaky ve stremu od act. pozice az k prvnimu nebilemu

Parameters:
s -
Throws:
java.io.IOException

containsOnlyWhitespaces

public static boolean containsOnlyWhitespaces(java.lang.String s)
Vraci, zda retezec obsahuje pouze bile znaky

Parameters:
s -
Returns:

isWhiteChar

public static boolean isWhiteChar(char c)

readNextNonWhiteChar

private int readNextNonWhiteChar(java.io.InputStream s,
                                 int index)
                          throws java.io.IOException
Throws:
java.io.IOException

readNextLine

private static java.lang.String readNextLine(java.io.BufferedInputStream in)
                                      throws java.io.IOException
Throws:
java.io.IOException

trimRight

public static java.lang.String trimRight(java.lang.String s)

alternateCompareAtPos

public static boolean alternateCompareAtPos(java.lang.String s1,
                                            java.lang.String s2,
                                            int pos)
nastala tato situace: Dva vstupni radky porovnavanych streamu (s1,s2) se na pozici "pos" prestaly rovnat. Je jeste ale sance, ze by porovnavani melo dopadnout dobre - treba jsou tu dva floaty, ktere se jen lisi presnosti... Proto tahle metoda vraci, jestli jsou radky opravdu ruzne (false) nebo jestli i pres tenhle rozdil maji byt vyhodnoceny jako stejne (true).

Pozor - tyhle tokeny uz museji byt na konci radky!

Tahle metod extrahuje dva "tokeny" z tech radek - tj. to "slovo", "cislo" ci cokoliv oddelene jakymikoliv znaky jinymi nez cislo, pismeno, tecka a carka a vola metodu alternateCompareTokens()


getMyTokenFromStr

private static java.lang.String getMyTokenFromStr(java.lang.String s,
                                                  int pos)
Pomocna pro alternateCompareAtPos()


alternateCompareTokens

public static boolean alternateCompareTokens(java.lang.String token1,
                                             java.lang.String token2)

areSimilarDoubles

public static boolean areSimilarDoubles(java.lang.String token1,
                                        java.lang.String token2)

scrollAfterResultsStarter

private java.lang.String scrollAfterResultsStarter(java.io.BufferedInputStream s,
                                                   int streamIndex)
Metoda jede vstupnim streamem az do okamziku, kdy nacte presne retezec definovany v Constants.RESULTS_STARTER nebo na konec streamu

Parameters:
s - Vstupni stream

getStream1

public java.io.BufferedInputStream getStream1()

getStream2

public java.io.BufferedInputStream getStream2()

getUseResultsStarter1

public boolean getUseResultsStarter1()

getUseResultsStarter2

public boolean getUseResultsStarter2()

getCompareResult

public boolean getCompareResult()

getResultStr1

public java.lang.String getResultStr1()

getResultStr2

public java.lang.String getResultStr2()

isWasResultsStarter1

public boolean isWasResultsStarter1()

isWasResultsStarter2

public boolean isWasResultsStarter2()


Copyright © 2007 University of West Bohemia, KIV, author Lukas Valenta (lvalenta at civ.zcu.cz). All Rights Reserved. Build date 20110415.