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

com.zvoykish.restdl.generator.java.impl.PrimitiveObjectContentGenerator Maven / Gradle / Ivy

package com.zvoykish.restdl.generator.java.impl;

import com.zvoykish.restdl.generator.ContentGenerator;
import com.zvoykish.restdl.objects.PrimitiveObject;
import com.zvoykish.restdl.objects.TypedObject;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;

import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;

/**
 * Created with IntelliJ IDEA.
 * User: Zvoykish
 * Date: 1/11/14
 * Time: 19:44
 */
public class PrimitiveObjectContentGenerator implements ContentGenerator {
    private static final List IGNORED_CLASSES = new ArrayList<>();

    static {
        IGNORED_CLASSES.add(Pattern.compile("(void)|(long)|(int)(boolean)|(float)|(double)|(short)|(byte)"));
        IGNORED_CLASSES.add(Pattern.compile("java..*"));
    }

    @Override
    public String generateContent(PrimitiveObject object, String className, Map typeMap) {
        for (Pattern ignoredClass : IGNORED_CLASSES) {
            if (ignoredClass.matcher(object.getClassName()).find()) {
                return null;
            }
        }

        Template template = Velocity.getTemplate("templates/object_primitive.vm");
        StringWriter stringWriter = new StringWriter();
        VelocityContext context = new VelocityContext();
        context.put("className", className);
        template.merge(context, stringWriter);
        return stringWriter.toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy