blob: dfaab42f4750bfe89c74dbfb6c10fffca1ef2b6b [file] [log] [blame]
package org.eclipse.jdt.internal.formatter.impl;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.jdt.internal.compiler.parser.*;
/** Represents a split line: contains an operator and all substrings
*/
public class SplitLine implements TerminalSymbols{
public int[] operators; // the operator on which the string was split.
public String[] substrings;
public int[] startSubstringsIndexes;
/**
* SplitLine constructor comment.
*/
public SplitLine(int[] operators, String[] substrings) {
this(operators, substrings, null);
}
/**
* SplitLine constructor comment.
*/
public SplitLine(int[] operators, String[] substrings, int[] startIndexes) {
super();
this.operators=operators;
this.substrings=substrings;
this.startSubstringsIndexes = startIndexes;
}
/**
* Prints a nice representation of the receiver
* @return java.lang.String
*/
public String toString() {
StringBuffer result=new StringBuffer();
String operatorString = new String();
for (int i=0,max=substrings.length;i<max;i++){
int currentOperator = operators[i];
String currentString = substrings[i];
boolean placeOperatorAhead = currentOperator != TerminalSymbols.TokenNameCOMMA && currentOperator != TerminalSymbols.TokenNameSEMICOLON;
boolean placeOperatorBehind = currentOperator == TerminalSymbols.TokenNameCOMMA || currentOperator == TerminalSymbols.TokenNameSEMICOLON;
switch (currentOperator){
case TokenNameextends:
operatorString="extends"; //$NON-NLS-1$
break;
case TokenNameimplements:
operatorString="implements"; //$NON-NLS-1$
break;
case TokenNamethrows:
operatorString="throws"; //$NON-NLS-1$
break;
case TokenNameSEMICOLON : // ;
operatorString=";"; //$NON-NLS-1$
break;
case TokenNameCOMMA : // ,
operatorString=","; //$NON-NLS-1$
break;
case TokenNameEQUAL : // =
operatorString="="; //$NON-NLS-1$
break;
case TokenNameAND_AND : // && (15.22)
operatorString="&&"; //$NON-NLS-1$
break;
case TokenNameOR_OR : // || (15.23)
operatorString="||"; //$NON-NLS-1$
break;
case TokenNameQUESTION : // ? (15.24)
operatorString="?"; //$NON-NLS-1$
break;
case TokenNameCOLON : // : (15.24)
operatorString=":"; //$NON-NLS-1$
break;
case TokenNameEQUAL_EQUAL : // == (15.20, 15.20.1, 15.20.2, 15.20.3)
operatorString="=="; //$NON-NLS-1$
break;
case TokenNameNOT_EQUAL : // != (15.20, 15.20.1, 15.20.2, 15.20.3)
operatorString="!="; //$NON-NLS-1$
break;
case TokenNameLESS : // < (15.19.1)
operatorString="<"; //$NON-NLS-1$
break;
case TokenNameLESS_EQUAL : // <= (15.19.1)
operatorString="<="; //$NON-NLS-1$
break;
case TokenNameGREATER : // > (15.19.1)
operatorString=">"; //$NON-NLS-1$
break;
case TokenNameGREATER_EQUAL : // >= (15.19.1)
operatorString=">="; //$NON-NLS-1$
break;
case TokenNameinstanceof : // instanceof
operatorString="instanceof"; //$NON-NLS-1$
break;
case TokenNamePLUS : // + (15.17, 15.17.2)
operatorString="+"; //$NON-NLS-1$
break;
case TokenNameMINUS : // - (15.17.2)
operatorString="-"; //$NON-NLS-1$
break;
case TokenNameMULTIPLY : // * (15.16.1)
operatorString="*"; //$NON-NLS-1$
break;
case TokenNameDIVIDE : // / (15.16.2)
operatorString="/"; //$NON-NLS-1$
break;
case TokenNameREMAINDER : // % (15.16.3)
operatorString="%"; //$NON-NLS-1$
break;
case TokenNameLEFT_SHIFT : // << (15.18)
operatorString="<<"; //$NON-NLS-1$
break;
case TokenNameRIGHT_SHIFT : // >> (15.18)
operatorString=">>"; //$NON-NLS-1$
break;
case TokenNameUNSIGNED_RIGHT_SHIFT : // >>> (15.18)
operatorString=">>>"; //$NON-NLS-1$
break;
case TokenNameAND : // & (15.21, 15.21.1, 15.21.2)
operatorString="&"; //$NON-NLS-1$
break;
case TokenNameOR : // | (15.21, 15.21.1, 15.21.2)
operatorString="|"; //$NON-NLS-1$
break;
case TokenNameXOR : // ^ (15.21, 15.21.1, 15.21.2)
operatorString="^"; //$NON-NLS-1$
break;
case TokenNameMULTIPLY_EQUAL : // *= (15.25.2)
operatorString="*="; //$NON-NLS-1$
break;
case TokenNameDIVIDE_EQUAL : // /= (15.25.2)
operatorString="/="; //$NON-NLS-1$
break;
case TokenNameREMAINDER_EQUAL : // %= (15.25.2)
operatorString="%="; //$NON-NLS-1$
break;
case TokenNamePLUS_EQUAL : // += (15.25.2)
operatorString="+="; //$NON-NLS-1$
break;
case TokenNameMINUS_EQUAL : // -= (15.25.2)
operatorString="-="; //$NON-NLS-1$
break;
case TokenNameLEFT_SHIFT_EQUAL : // <<= (15.25.2)
operatorString="<<="; //$NON-NLS-1$
break;
case TokenNameRIGHT_SHIFT_EQUAL : // >>= (15.25.2)
operatorString=">>="; //$NON-NLS-1$
break;
case TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL : // >>>= (15.25.2)
operatorString=">>>="; //$NON-NLS-1$
break;
case TokenNameAND_EQUAL : // &= (15.25.2)
operatorString="&="; //$NON-NLS-1$
break;
case TokenNameXOR_EQUAL : // ^= (15.25.2)
operatorString="^="; //$NON-NLS-1$
break;
case TokenNameOR_EQUAL : // |= (15.25.2)
operatorString="|="; //$NON-NLS-1$
break;
case TokenNameDOT : // .
operatorString="."; //$NON-NLS-1$
break;
default:
operatorString=""; //$NON-NLS-1$
}
if (placeOperatorAhead){
result.append(operatorString);
}
result.append(currentString);
if (placeOperatorBehind){
result.append(operatorString);
}
result.append('\n');
}
return ""; //$NON-NLS-1$
}
}