| /* |
| * Copyright 2009 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.soyc; |
| |
| import com.google.gwt.soyc.io.OutputDirectory; |
| import com.google.gwt.util.tools.Utility; |
| |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.io.OutputStream; |
| |
| /** |
| * This class handles static resources such as CSS and GIF files that support |
| * the generated HTML. The resources are expected to be available via this |
| * class's class loader. |
| */ |
| public class StaticResources { |
| /** |
| * A list of all static resources. Storing it this way allows the resources to |
| * be loaded via a Java class loader, which is often convenient. Class loaders |
| * cannot be iterated over. |
| */ |
| private static String[] resourceNames = new String[] { |
| "goog.css", "inlay.css", "soyc.css", "images/g_gwt.png", |
| "images/up_arrow.png", "images/play-g16.png", "images/play-g16-down.png"}; |
| |
| public static void emit(OutputDirectory outDir) throws IOException { |
| String prefix = StaticResources.class.getPackage().getName().replace('.', |
| '/') |
| + "/resources/"; |
| ClassLoader loader = StaticResources.class.getClassLoader(); |
| for (String resourceName : resourceNames) { |
| InputStream in = loader.getResourceAsStream(prefix + resourceName); |
| if (in == null) { |
| throw new Error("Could not find resource via my class loader: " |
| + prefix + resourceName); |
| } |
| OutputStream out = outDir.getOutputStream(resourceName); |
| Utility.streamOut(in, out, 10240); |
| in.close(); |
| out.close(); |
| } |
| } |
| } |