Package com.tinkerpop.gremlin.groovy.jsr223

Source Code of com.tinkerpop.gremlin.groovy.jsr223.AbstractImportCustomizerProvider

package com.tinkerpop.gremlin.groovy.jsr223;

import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.TransactionalGraph;
import com.tinkerpop.gremlin.Imports;
import org.codehaus.groovy.control.customizers.ImportCustomizer;

import java.util.HashSet;
import java.util.Set;

/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public abstract class AbstractImportCustomizerProvider implements ImportCustomizerProvider {
    protected static final String DOT_STAR = ".*";
    protected static final String EMPTY_STRING = "";
    protected static final String PERIOD = ".";

    protected final Set<String> extraImports = new HashSet<String>();
    protected final Set<String> extraStaticImports = new HashSet<String>();

    @Override
    public ImportCustomizer getImportCustomizer() {
        final ImportCustomizer ic = new ImportCustomizer();
        for (final String imp : Imports.getImports()) {
            ic.addStarImports(imp.replace(DOT_STAR, EMPTY_STRING));
        }

        ic.addImports("com.tinkerpop.gremlin.Tokens.T");
        ic.addStarImports("com.tinkerpop.gremlin.groovy");
        ic.addStaticImport(Direction.class.getName(), Direction.OUT.toString());
        ic.addStaticImport(Direction.class.getName(), Direction.IN.toString());
        ic.addStaticImport(Direction.class.getName(), Direction.BOTH.toString());
        ic.addStaticImport(TransactionalGraph.Conclusion.class.getName(), TransactionalGraph.Conclusion.SUCCESS.toString());
        ic.addStaticImport(TransactionalGraph.Conclusion.class.getName(), TransactionalGraph.Conclusion.FAILURE.toString());

        importExtras(ic);
        importExtraStatics(ic);

        return ic;
    }

    private void importExtraStatics(final ImportCustomizer ic) {
        for (final String extraStaticImport : extraStaticImports) {
            if (extraStaticImport.endsWith(DOT_STAR)) {
                ic.addStaticStars(extraStaticImport.replace(DOT_STAR, EMPTY_STRING));
            } else {
                final int place = extraStaticImport.lastIndexOf(PERIOD);
                ic.addStaticImport(extraStaticImport.substring(0, place), extraStaticImport.substring(place + 1));
            }
        }
    }

    private void importExtras(final ImportCustomizer ic) {
        for (final String extraImport : extraImports) {
            if (extraImport.endsWith(DOT_STAR)) {
                ic.addStarImports(extraImport.replace(DOT_STAR, EMPTY_STRING));
            } else {
                ic.addImports(extraImport);
            }
        }
    }
}
TOP

Related Classes of com.tinkerpop.gremlin.groovy.jsr223.AbstractImportCustomizerProvider

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.