package water.exceptions;
import water.util.IcedBitSet;
/**
* Simple interface to share definition of SB and SBPrintStream.
*
* Designed for Java code generation.
*/
public interface JCodeSB<T extends JCodeSB> {
// Append primitves
T ps(String s);
T p(String s);
T p(float s);
T p(double s);
T p(char s);
T p(int s);
T p(long s);
T p(boolean s);
T p(JCodeSB s);
T pobj(Object s);
/** Increase indentation counter */
T i(int d);
/** Increase indentation counter */
T i();
/** Indent and append. */
T ip(String s);
/** Append empty string. */
T s();
// Java specific append of double
T pj(double s);
// Java specific append of float
T pj(float s);
/* Append Java string - escape all " and \ */
T pj(String s);
/** Append reference to object's field
*
* @param objectName name of object
* @param fieldName field name to reference
* @return
*/
T pj(String objectName, String fieldName);
T p(IcedBitSet ibs);
/** Increase indentation counter */
T ii(int i);
/** Decrease indentation counter */
T di(int i);
// Copy indent from given string buffer
T ci(JCodeSB sb);
T nl();
// Convert a String[] into a valid Java String initializer
T toJavaStringInit(String[] ss);
T toJavaStringInit(float[] ss);
T toJavaStringInit(double[] ss);
T toJavaStringInit(double[][] ss);
T toJavaStringInit(double[][][] ss);
T toJSArray(float[] nums);
T toJSArray(String[] ss);
int getIndent();
String getContent();
}