org.jnario.scoping.JnarioExtensionClassNameProvider.java Source code

Java tutorial

Introduction

Here is the source code for org.jnario.scoping.JnarioExtensionClassNameProvider.java

Source

/*******************************************************************************
# * Copyright (c) 2012 BMW Car IT and others.
 * 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 org.jnario.scoping;

import java.util.Collection;
import java.util.Iterator;

import org.eclipse.xtext.xbase.scoping.featurecalls.StaticImplicitMethodsFeatureForTypeProvider.ExtensionClassNameProvider;
import org.hamcrest.CoreMatchers;
import org.jnario.lib.Each;
import org.jnario.lib.ExampleTable;
import org.jnario.lib.ExampleTableIterators;
import org.jnario.lib.JnarioCollectionLiterals;
import org.jnario.lib.JnarioIterableExtensions;
import org.jnario.lib.JnarioIteratorExtensions;
import org.jnario.lib.Should;
import org.jnario.lib.StringConversions;

import com.google.common.collect.Multimap;
import com.google.inject.Singleton;

/**
 * @author Sebastian Benz - Initial contribution and API
 */
@Singleton
public class JnarioExtensionClassNameProvider extends ExtensionClassNameProvider {

    @Override
    protected Multimap<Class<?>, Class<?>> simpleComputeExtensionClasses() {
        Multimap<Class<?>, Class<?>> result = super.simpleComputeExtensionClasses();
        result.put(ExampleTable.class, ExampleTableIterators.class);
        //      result.replaceValues(Object.class, ImmutableList.of(Should.class, Each.class, ObjectExtensions.class));
        result.put(Object.class, Should.class);
        result.put(Object.class, Each.class);
        result.put(String.class, StringConversions.class);
        result.put(Iterable.class, JnarioIterableExtensions.class);
        result.put(Iterator.class, JnarioIteratorExtensions.class);
        return result;
    }

    @Override
    protected Collection<String> computeLiteralClassNames() {
        Collection<String> result = super.computeLiteralClassNames();
        result.add(Each.class.getName());
        result.add(Should.class.getName());
        result.add(CoreMatchers.class.getName());
        result.add(JnarioCollectionLiterals.class.getName());
        return result;
    }

}