
com.sirolf2009.util.StringUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of util Show documentation
Show all versions of util Show documentation
A collection of my common utilities
The newest version!
package com.sirolf2009.util;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.ExclusiveRange;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.ListExtensions;
@SuppressWarnings("all")
public class StringUtil {
public static String combineMultiline(final String... strings) {
int _size = ((List)Conversions.doWrapArray(strings)).size();
boolean _equals = (_size == 0);
if (_equals) {
return "";
} else {
int _size_1 = ((List)Conversions.doWrapArray(strings)).size();
boolean _equals_1 = (_size_1 == 1);
if (_equals_1) {
return strings[0];
}
}
String _get = strings[0];
final AtomicReference combined = new AtomicReference(_get);
final Consumer _function = new Consumer() {
@Override
public void accept(final String it) {
combined.set(StringUtil.combineMultiline(combined.get(), it));
}
};
((List)Conversions.doWrapArray(strings)).stream().skip(1).forEach(_function);
return combined.get();
}
public static String combineMultiline(final String a, final String b) {
final String[] aLines = a.split("\n");
final String[] bLines = b.split("\n");
if (((((List)Conversions.doWrapArray(aLines)).size() == 1) && (((List)Conversions.doWrapArray(bLines)).size() == 1))) {
return (a + b);
}
final int sizeA = StringUtil.getWidthOfMultiline(a);
final int sizeB = StringUtil.getWidthOfMultiline(b);
int _max = Math.max(((List)Conversions.doWrapArray(aLines)).size(), ((List)Conversions.doWrapArray(bLines)).size());
final Function1 _function = new Function1() {
@Override
public String apply(final Integer it) {
String _xifexpression = null;
int _size = ((List)Conversions.doWrapArray(aLines)).size();
boolean _lessThan = ((it).intValue() < _size);
if (_lessThan) {
_xifexpression = aLines[(it).intValue()];
} else {
_xifexpression = "";
}
final String aLine = _xifexpression;
String _xifexpression_1 = null;
int _length = aLine.length();
boolean _lessThan_1 = (_length < sizeA);
if (_lessThan_1) {
int _length_1 = aLine.length();
int _minus = (sizeA - _length_1);
String _padding = StringUtil.padding(_minus);
_xifexpression_1 = (aLine + _padding);
} else {
_xifexpression_1 = aLine;
}
final String aLinePadded = _xifexpression_1;
String _xifexpression_2 = null;
int _size_1 = ((List)Conversions.doWrapArray(bLines)).size();
boolean _lessThan_2 = ((it).intValue() < _size_1);
if (_lessThan_2) {
_xifexpression_2 = bLines[(it).intValue()];
} else {
_xifexpression_2 = "";
}
final String bLine = _xifexpression_2;
String _xifexpression_3 = null;
int _length_2 = bLine.length();
boolean _lessThan_3 = (_length_2 < sizeB);
if (_lessThan_3) {
int _length_3 = bLine.length();
int _minus_1 = (sizeB - _length_3);
String _padding_1 = StringUtil.padding(_minus_1);
_xifexpression_3 = (bLine + _padding_1);
} else {
_xifexpression_3 = bLine;
}
final String bLinePadded = _xifexpression_3;
return (aLinePadded + bLinePadded);
}
};
return IterableExtensions.join(IterableExtensions.map(new ExclusiveRange(0, _max, true), _function), "\n");
}
public static int getWidthOfMultiline(final String multilineString) {
final Function1 _function = new Function1() {
@Override
public Integer apply(final String it) {
return Integer.valueOf(it.length());
}
};
return (int) IterableExtensions.max(ListExtensions.map(((List)Conversions.doWrapArray(multilineString.split("\n"))), _function));
}
public static int getHeightOfMultiline(final String multilineString) {
return multilineString.split("\n").length;
}
public static String padding(final int size) {
return StringUtil.padding(size, " ");
}
public static String padding(final int size, final String character) {
if ((size <= 0)) {
return "";
}
final Function1 _function = new Function1() {
@Override
public String apply(final Integer it) {
return character;
}
};
return IterableExtensions.join(IterableExtensions.map(new ExclusiveRange(0, size, true), _function));
}
public static String vpadding(final int size) {
return StringUtil.vpadding(size, " ");
}
public static String vpadding(final int size, final String character) {
String _xblockexpression = null;
{
if ((size <= 0)) {
return "";
}
final Function1 _function = new Function1() {
@Override
public String apply(final Integer it) {
return character;
}
};
_xblockexpression = IterableExtensions.join(IterableExtensions.map(new ExclusiveRange(0, size, true), _function), "\n");
}
return _xblockexpression;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy