/** * Mule Development Kit * Copyright 2010-2011 (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * * 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 org.mule.devkit.generation.mule; import org.mule.devkit.generation.AbstractModuleGenerator; import org.mule.devkit.generation.DevKitTypeElement; import org.mule.devkit.generation.GenerationException; import org.mule.devkit.model.code.DefinedClass; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; public class RegistryBootstrapGenerator extends AbstractModuleGenerator { @Override protected boolean shouldGenerate(DevKitTypeElement typeElement) { return true; } @Override protected void doGenerate(DevKitTypeElement typeElement) throws GenerationException { OutputStreamWriter registryBootstrapStreamOut = null; try { OutputStream registryBootstrapStream = context.getCodeModel().getRegistryBootstrapStream(); registryBootstrapStreamOut = new OutputStreamWriter(registryBootstrapStream, "UTF-8"); for (DefinedClass clazz : context.getRegisterAtBoot()) { context.note("Adding registry bootstrap entry for " + clazz.fullName() + " as " + clazz.name()); registryBootstrapStreamOut.write(clazz.name() + "=" + clazz.fullName() + "\n"); } registryBootstrapStreamOut.flush(); } catch (IOException ioe) { throw new GenerationException(ioe); } finally { //IOUtils.closeQuietly(registryBootstrapStreamOut); } } }