package com.tinkerpop.gremlin.elastic.structure;

import com.tinkerpop.gremlin.structure.Graph;
import com.tinkerpop.gremlin.structure.util.StringFactory;

public class ElasticFeatures implements Graph.Features {
    @Override
    public GraphFeatures graph() {
        return new GraphFeatures() {
            @Override
            public VariableFeatures variables() {
                return new VariableFeatures() {
                    @Override
                    public boolean supportsVariables() {
                        return false;
                    }
                };
            }

            @Override
            public boolean supportsComputer() {
                return false;
            }

            @Override
            public boolean supportsTransactions() {
                return false;
            }

            @Override
            public boolean supportsThreadedTransactions() {
                return false;
            }
        };
    }

    @Override
    public EdgeFeatures edge() {
        return new EdgeFeatures() {
            @Override
            public boolean supportsNumericIds() {
                return false;
            }

            @Override
            public boolean supportsAnyIds() {
                return false;
            }

            @Override
            public boolean supportsUuidIds() {
                return false;
            }

            @Override
            public boolean supportsCustomIds() {
                return false;
            }
        };
    }

    @Override
    public VertexFeatures vertex() {
        return new VertexFeatures() {
            @Override
            public boolean supportsMultiProperties() {
                return false;
            }

            @Override
            public boolean supportsNumericIds() {
                return false;
            }

            @Override
            public boolean supportsUuidIds() {
                return false;
            }

            @Override
            public boolean supportsCustomIds() {
                return false;
            }

            @Override
            public boolean supportsAnyIds() {
                return false;
            }

            @Override
            public boolean supportsMetaProperties() {
                return false;
            }
        };
    }

    @Override
    public String toString() {
        return StringFactory.featureString(this);
    }
}

@@ -550,32 +550,2790 @@
                %7D
+%0A%0A                    @Override%0A                    public boolean supportsBooleanValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsByteValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsDoubleValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsFloatValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsIntegerValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsLongValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsMapValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsMixedListValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsBooleanArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsByteArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsDoubleArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsFloatArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsIntegerArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsStringArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsLongArrayValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsSerializableValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsStringValues() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsUniformListValues() %7B%0A                        return false;%0A                    %7D
 %0A               
@@ -5071,32 +5071,1089 @@
 e;%0A            %7D
+%0A%0A            @Override%0A            public VertexPropertyFeatures properties() %7B%0A                return new VertexPropertyFeatures() %7B%0A                    @Override%0A                    public boolean supportsUserSuppliedIds() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsNumericIds() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsStringIds() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsUuidIds() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsCustomIds() %7B%0A                        return false;%0A                    %7D%0A%0A                    @Override%0A                    public boolean supportsAnyIds() %7B%0A                        return false;%0A                    %7D%0A%0A                %7D;%0A            %7D
 %0A        %7D;%0A    

update feature support