/**
 * generated by Xtext
 */
package org.polarsys.chess.xtext.ui.labeling;

import com.google.inject.Inject;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;

/**
 * Provides labels for EObjects.
 * 
 * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
 */
@SuppressWarnings("all")
public class FlaDslLabelProvider extends DefaultEObjectLabelProvider {
  @Inject
  public FlaDslLabelProvider(final AdapterFactoryLabelProvider delegate) {
    super(delegate);
  }
}
