/*
 * Copyright 2015-2017 OpenCB
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.opencb.commons.datastore.core;

/**
 * @author Jacobo Coll &lt;jacobo167@gmail.com&gt;
 */
public interface QueryParam {

    enum Type {
        STRING,
        TEXT,
        TEXT_ARRAY,
        INTEGER,
        INTEGER_ARRAY,
        DOUBLE,
        DECIMAL,
        DECIMAL_ARRAY,
        BOOLEAN,
        DATE
    }

    String key();

    String description();

    Type type();

    static QueryParam create(String key, String description, Type type) {
        return new QueryParamImpl(key, description, type);
    }

    class QueryParamImpl implements QueryParam {

        private QueryParamImpl(String key, String description, Type type) {
        }

        @Override
        public String key() {
            return null;
        }

        @Override
        public String description() {
            return null;
        }

        @Override
        public Type type() {
            return null;
        }
    }

}

@@ -1196,67 +1196,279 @@
 ate 
-QueryParamImpl(String key, String description, Type type) %7B
+final String key;%0A        private final String description;%0A        private final Type type;%0A%0A        private QueryParamImpl(String key, String description, Type type) %7B%0A            this.key = key;%0A            this.description = description;%0A            this.type = type;
 %0A   
@@ -1534,36 +1534,35 @@
          return 
-null
+key
 ;%0A        %7D%0A%0A   
@@ -1625,36 +1625,43 @@
          return 
-null
+description
 ;%0A        %7D%0A%0A   
@@ -1727,12 +1727,12 @@
 urn 
-null
+type
 ;%0A  

Fix QueryParam create method