code: protected String[] getLineParts(final String line) {
  		String[] parts = line.split(" ");
  		List<String> ans = new ArrayList<>();
  		int idx = 0;
  		int len = parts.length;
  		while (idx < len) {
  			if (parts[idx].contains("='") && !parts[idx].endsWith("'")) {
  				StringBuilder builder = new StringBuilder(parts[idx++]);
  				while (idx < len) {
  					builder.append(" ").append(parts[idx]);
  					if (parts[idx++].endsWith("'")) {
  						break;
  					}
  				}
  				ans.add(builder.toString());
  			} else if (parts[idx].contains("=[") && !parts[idx].endsWith("]")) {
  				StringBuilder builder = new StringBuilder(parts[idx++]);
  				while (idx < len) {
  					builder.append(" ").append(parts[idx]);
  					if (parts[idx++].endsWith("]")) {
  						break;
  					}
  				}
  				ans.add(builder.toString());
  			} else {
  				String part = parts[idx++];
  				if (StringUtils.isNotEmpty(part)) {
  					ans.add(part);
  				}
  			}
  		}
  		return ans.toArray(new String[ans.size()]);
  	}
docs: 入力行をパーツに分解する。空白で分解した後に条件によって結合を行う。<br>
  
  【結合条件】<br>
  ・''で囲まれる値には空白を含めることができる。ex) 'String value includes whitespace.'<br>
  ・[]で囲まれる値は配列を表す。 ex) [10, 20, 30, 40], ['aaa' , 'bbb' , 'ccc']
  
  @param line 入力行
  @return パーツに分解した文字列配列