All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sirolf2009.util.StringUtil Maven / Gradle / Ivy

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