/* * Copyright (c) 2012 Google Inc. * * 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 */ package com.google.eclipse.protobuf; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.EPackage; import org.eclipse.xtext.GeneratedMetamodel; import org.eclipse.xtext.xtext.ecoreInference.IXtext2EcorePostProcessor; /** * @author alruiz@google.com (Alex Ruiz) */ @SuppressWarnings("restriction") public class ProtobufEcorePostProcessor implements IXtext2EcorePostProcessor { @Override public void process(GeneratedMetamodel metamodel) { EPackage p = metamodel.getEPackage(); for (EClassifier c : p.getEClassifiers()) { if (c instanceof EClass && "Literal".equals(c.getName())) { processLiteralClass((EClass) c); } } } private void processLiteralClass(EClass c) { for (EAttribute a : c.getEAllAttributes()) { if ("index".equals(a.getName())) { a.setDefaultValue(-1L); break; } } } }