/* * Copyright 2008 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.module.rebind; import com.google.gwt.core.ext.Generator; import com.google.gwt.core.ext.GeneratorContext; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; import com.google.gwt.core.ext.linker.EmittedArtifact.Visibility; import com.google.gwt.dev.util.Util; import java.io.IOException; import java.io.OutputStream; /** * Creates three files in the generated output directory with different * visibility. */ public class NoDeployGenerator extends Generator { @Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { try { createFile(logger, context, "publicFile.txt", Visibility.Public); createFile(logger, context, "deployFile.txt", Visibility.Deploy); createFile(logger, context, "privateFile.txt", Visibility.Private); createFile(logger, context, "legacyFile.txt", Visibility.LegacyDeploy); } catch (IOException e) { logger.log(TreeLogger.ERROR, "Unable to create test file", e); throw new UnableToCompleteException(); } return typeName; } private void createFile(TreeLogger logger, GeneratorContext context, String path, Visibility visibility) throws UnableToCompleteException, IOException { OutputStream out = context.tryCreateResource(logger, path); if (out == null) { return; } out.write(Util.getBytes(path)); context.commitResource(logger, out).setVisibility(visibility); } }