package fr.openwide.core.commons.util.functional;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
import fr.openwide.core.commons.util.functional.SerializableFunction;
public final class Splitters {
private static final Splitter SPACE = Splitter.on(" ").trimResults().omitEmptyStrings();
private static final Splitter NON_BREAKING_SPACE = Splitter.on("\u00A0").trimResults().omitEmptyStrings();
private static final Splitter NEW_LINE = Splitter.on("\n").trimResults().omitEmptyStrings();
private static final Splitter NEW_LINE_SEMICOLON = Splitter.on(" ;\n").trimResults().omitEmptyStrings();
private static final Splitter HYPHEN_SPACE = Splitter.on(" - ").trimResults().omitEmptyStrings();
private static final Splitter MIDDOT_SPACE = Splitter.on(" ยท ").trimResults().omitEmptyStrings();
private static final Splitter DOT = Splitter.on(".").trimResults().omitEmptyStrings();
private static final Splitter SLASH = Splitter.on("/").trimResults().omitEmptyStrings();
private static final Splitter COMMA = Splitter.on(",").trimResults().omitEmptyStrings();
public static Splitter onSpace() {
return SPACE;
}
public static Splitter onNonBreakingSpace() {
return NON_BREAKING_SPACE;
}
public static Splitter onNewLine() {
return NEW_LINE;
}
public static Splitter onNewLineSemicolon() {
return NEW_LINE_SEMICOLON;
}
public static Splitter onHyphenSpace() {
return HYPHEN_SPACE;
}
public static Splitter onMiddotSpace() {
return MIDDOT_SPACE;
}
public static Splitter onDot() {
return DOT;
}
public static Splitter onSlash() {
return SLASH;
}
public static Splitter onComma() {
return COMMA;
}
public static final class Functions {
private static final Function<Object, Splitter> SPACE = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.SPACE;
}
};
private static final Function<Object, Splitter> NON_BREAKING_SPACE = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.NON_BREAKING_SPACE;
}
};
private static final Function<Object, Splitter> NEW_LINE = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.NEW_LINE;
}
};
private static final Function<Object, Splitter> NEW_LINE_SEMICOLON = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.NEW_LINE_SEMICOLON;
}
};
private static final Function<Object, Splitter> HYPHEN_SPACE = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.HYPHEN_SPACE;
}
};
private static final Function<Object, Splitter> MIDDOT_SPACE = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.MIDDOT_SPACE;
}
};
private static final Function<Object, Splitter> DOT = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.DOT;
}
};
private static final Function<Object, Splitter> SLASH = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.SLASH;
}
};
private static final Function<Object, Splitter> COMMA = new SerializableFunction<Object, Splitter>() {
private static final long serialVersionUID = 1L;
@Override
public Splitter apply(Object input) {
return Splitters.COMMA;
}
};
public static Function<Object, Splitter> onSpace() {
return SPACE;
}
public static Function<Object, Splitter> onNonBreakingSpace() {
return NON_BREAKING_SPACE;
}
public static Function<Object, Splitter> onNewLine() {
return NEW_LINE;
}
public static Function<Object, Splitter> onNewLineSemicolon() {
return NEW_LINE_SEMICOLON;
}
public static Function<Object, Splitter> onHyphenSpace() {
return HYPHEN_SPACE;
}
public static Function<Object, Splitter> onMiddotSpace() {
return MIDDOT_SPACE;
}
public static Function<Object, Splitter> onDot() {
return DOT;
}
public static Function<Object, Splitter> onSlash() {
return SLASH;
}
public static Function<Object, Splitter> onComma() {
return COMMA;
}
private Functions() {
}
}
private Splitters() {
}
}