1b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov/** 211a89b445f3bde56bf07e6a0d04f0b0256dcb215Andrey Somov * Copyright (c) 2008, http://www.snakeyaml.org 3b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * 4b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * Licensed under the Apache License, Version 2.0 (the "License"); 5b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * you may not use this file except in compliance with the License. 6b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * You may obtain a copy of the License at 7b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * 8b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * http://www.apache.org/licenses/LICENSE-2.0 9b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * 10b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * Unless required by applicable law or agreed to in writing, software 11b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * distributed under the License is distributed on an "AS IS" BASIS, 12b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * See the License for the specific language governing permissions and 14b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov * limitations under the License. 15b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov */ 16b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovpackage org.yaml.snakeyaml; 17b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov 18b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport java.io.BufferedInputStream; 19b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport java.io.IOException; 20b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovimport java.io.InputStream; 21b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov 22b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somovpublic class Util { 23b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov 24b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov public static String getLocalResource(String theName) { 25b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov try { 26b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov InputStream input; 27b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov input = YamlDocument.class.getClassLoader().getResourceAsStream(theName); 28b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov if (input == null) { 29b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov throw new RuntimeException("Can not find " + theName); 30b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 31b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov BufferedInputStream is = new BufferedInputStream(input); 32b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov StringBuilder buf = new StringBuilder(3000); 33b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov int i; 34b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov try { 35b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov while ((i = is.read()) != -1) { 36b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov buf.append((char) i); 37b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 38b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } finally { 39b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov is.close(); 40b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 41b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov String resource = buf.toString(); 42b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov // convert EOLs 43b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov String[] lines = resource.split("\\r?\\n"); 44b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov StringBuilder buffer = new StringBuilder(); 45b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov for (int j = 0; j < lines.length; j++) { 46b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov buffer.append(lines[j]); 47b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov buffer.append("\n"); 48b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 49b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov return buffer.toString(); 50b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } catch (IOException e) { 51b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov throw new RuntimeException(e); 52b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 53b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov } 54b5f4ec3dfb1a49968ebcc1243da10af9a2dc54a2Andrey Somov} 55