Package com.google.eclipse.protobuf.resource

Source Code of com.google.eclipse.protobuf.resource.GlobalResourceServiceProvider

/*
* Copyright (c) 2011 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.resource;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.resource.IGlobalServiceProvider.ResourceServiceProviderImpl;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.resource.IResourceServiceProvider.Registry;

import com.google.inject.Inject;

/**
* @author alruiz@google.com (Alex Ruiz)
*/
public class GlobalResourceServiceProvider extends ResourceServiceProviderImpl {
  @Inject public GlobalResourceServiceProvider(Registry registry, IResourceServiceProvider provider) {
    super(registry, provider);
  }

  @Override public <T> T findService(EObject e, Class<T> serviceType) {
    if (e.eIsProxy()) {
      InternalEObject internalEObject = (InternalEObject) e;
      return findService(internalEObject.eProxyURI(), serviceType);
    }
    Resource resource = e.eResource();
    return (resource != null) ? findService(resource.getURI(), serviceType) : null;
  }
}
TOP

Related Classes of com.google.eclipse.protobuf.resource.GlobalResourceServiceProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.