| /******************************************************************************* |
| * Copyright (c) 2016 CEA LIST |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.efm.modeling.codegen.xlia.core; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.efm.modeling.codegen.xlia.util.SimpleLogger; |
| import org.eclipse.uml2.uml.Element; |
| import org.eclipse.uml2.uml.NamedElement; |
| |
| public abstract class AbstractCodeGenerator { |
| |
| /** |
| * MainCodeGeneratorMainCodeGenerator Supervisor |
| */ |
| protected MainCodeGenerator fSupervisor; |
| |
| /** |
| * LOGGER |
| */ |
| protected SimpleLogger LOGGER; |
| |
| /** |
| * Constructor |
| */ |
| public AbstractCodeGenerator() { |
| super(); |
| |
| fSupervisor = null; |
| |
| this.LOGGER = new SimpleLogger(); |
| } |
| |
| |
| /** |
| * Constructor |
| * @param supervisor |
| */ |
| public AbstractCodeGenerator(final MainCodeGenerator supervisor) { |
| super(); |
| |
| this.fSupervisor = supervisor; |
| |
| this.LOGGER = supervisor.LOGGER; |
| } |
| |
| |
| /** |
| *Init Util, LOGGER, ... |
| * @return false if initialization is failed |
| */ |
| public boolean reset() { |
| return LOGGER.reset(); |
| } |
| |
| public void log(final IStatus aStatus) { |
| LOGGER.log(aStatus); |
| } |
| |
| /** |
| * GETTER |
| * Reort Logger |
| */ |
| public SimpleLogger getReportLogger() { |
| return LOGGER; |
| } |
| |
| /** |
| * Error/warning reporting |
| */ |
| public void report() { |
| LOGGER.report(); |
| } |
| |
| |
| public void performTransformError( |
| final AbstractCodeGenerator context, final Element element) { |
| if( element instanceof NamedElement ) { |
| LOGGER.error( ( new StringBuilder(context.getClass().getSimpleName()) ) |
| .append( ":> unexpected " ) |
| .append( element.getClass().getSimpleName() ) |
| .append( ' ' ) |
| .append( ((NamedElement)element).getQualifiedName() ) |
| .toString() ); |
| } |
| else { |
| LOGGER.error( ( new StringBuilder(context.getClass().getSimpleName()) ) |
| .append( ":> unexpected " ) |
| .append( element.getClass().getSimpleName() ) |
| .append( ' ' ) |
| .append( element.toString() ) |
| .toString() ); |
| } |
| } |
| |
| |
| } |