All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wavemaker.tools.apidocs.tools.spring.resolver.PageParameterResolver Maven / Gradle / Ivy

/**
 * Copyright © 2013 - 2017 WaveMaker, Inc.
 *
 * 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 com.wavemaker.tools.apidocs.tools.spring.resolver;

import java.lang.annotation.Annotation;
import java.util.LinkedList;
import java.util.List;

import com.wavemaker.tools.apidocs.tools.core.model.Operation;
import com.wavemaker.tools.apidocs.tools.core.model.TypeInformation;
import com.wavemaker.tools.apidocs.tools.core.model.parameters.Parameter;
import com.wavemaker.tools.apidocs.tools.core.model.parameters.QueryParameter;
import com.wavemaker.tools.apidocs.tools.core.model.properties.IntegerProperty;
import com.wavemaker.tools.apidocs.tools.core.model.properties.StringProperty;
import com.wavemaker.tools.apidocs.tools.parser.resolver.ParameterResolver;

/**
 * @author Dilip Kumar
 * @since 17/11/14
 */
public class PageParameterResolver implements ParameterResolver {
    @Override
    public List resolveParameter(
            final int index, final TypeInformation typeInformation, final Annotation[] annotations,
            final Operation operation) {
        List parameters = new LinkedList<>();

        QueryParameter page = getDefaultParameterBuilder();
        page.setName("page");
        page.setDefaultValue("0");
        page.setResolver(typeInformation.getActualType().getName());
        parameters.add(page);

        QueryParameter size = getDefaultParameterBuilder();
        size.setName("size");
        size.setDefaultValue("20");
        page.setResolver(typeInformation.getActualType().getName());
        parameters.add(size);

        QueryParameter sort = getDefaultParameterBuilder();
        sort.setName("sort");
        sort.property(new StringProperty());
        page.setResolver(typeInformation.getActualType().getName());
        parameters.add(sort);


        return parameters;
    }

    private QueryParameter getDefaultParameterBuilder() {
        QueryParameter queryParameter = new QueryParameter();
        // builder.setResolver(type.getName());
//        builder.setIndex(index);
        queryParameter.setRequired(false);
        queryParameter.property(new IntegerProperty());
        queryParameter.setEditable(false);
//        builder.setId(DataTypeUtil.getName(type));

        return queryParameter;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy