package com.sun.identity.shared.xml;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
import java.nio.charset.StandardCharsets;

public final class Resource {
   public static String read(String fileName, Class<?> cl) {
      String data = "";

      try {
         InputStream in = cl.getResourceAsStream(fileName);
         if (in == null) {
            try {
               in = new FileInputStream(fileName);
            } catch (FileNotFoundException e) {
               String directoryURL = cl.getProtectionDomain().getCodeSource().getLocation().toString();
               String fileURL = directoryURL + fileName;
               URL url = URI.create(fileURL).toURL();
               in = url.openStream();
            }
         }

         data = read(new InputStreamReader(in, StandardCharsets.UTF_8));
         in.close();
      } catch (Exception var9) {
      }

      return data;
   }

   public static String read(Reader aReader) {
      StringBuilder sb = new StringBuilder();

      try {
         BufferedReader bReader = new BufferedReader(aReader);
         char[] data = new char[2048];
         int count = 0;

         while ((count = bReader.read(data)) != -1) {
            sb.append(data, 0, count);
         }

         bReader.close();
         aReader.close();
      } catch (IOException var5) {
      }

      return sb.toString();
   }

   public static String read(String fileName) {
      return read(fileName, Resource.class);
   }

   public static boolean save(String aFileName, String aContent) {
      try {
         FileWriter fOut = new FileWriter(aFileName, StandardCharsets.UTF_8);
         fOut.write(aContent);
         fOut.flush();
         fOut.close();
         return true;
      } catch (IOException e) {
         return false;
      }
   }
}
