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

com.github.andyshaox.servlet.mapping.annotation.Mappings Maven / Gradle / Ivy

There is a newer version: 3.2.10.RELEASE
Show newest version
package com.github.andyshaox.servlet.mapping.annotation;

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Map;

import com.github.andyshao.lang.StringOperation;

/**
 * 
 * Title:
* Descript:
* Copyright: Copryright(c) Dec 27, 2015
* Encoding:UNIX UTF-8 * * @author Andy.Shao * */ public final class Mappings { private static final String[] EMPTY_STR_ARRAY = new String[] { "" }; private static final String VALUE_SPLIT = "="; public static final boolean constain(Class clazz) { return clazz.getAnnotation(Mapping.class) != null; } public static final boolean constain(Method method) { return method.getAnnotation(Mapping.class) != null; } public static final com.github.andyshaox.servlet.mapping.Mapping convertByMethod(Method method) { Mapping mapping = method.getAnnotation(Mapping.class); if (mapping == null) return null; com.github.andyshaox.servlet.mapping.Mapping result = com.github.andyshaox.servlet.mapping.Mapping.defaultMapping(); result.setConsumes(mapping.consumes().isEmpty() ? null : mapping.consumes()); Mappings.format(mapping.headers() , result.getHeaders()); result.setMethodType(Arrays.deepEquals(mapping.methodType() , Mappings.EMPTY_STR_ARRAY) ? null : mapping.methodType()); Mappings.format(mapping.attributes() , result.getAttributes()); result.setProduces(mapping.produces().isEmpty() ? null : mapping.produces()); result.setUrl(mapping.value()); result.setDefineClass(method.getDeclaringClass()); result.setProcessMethod(method); result.setClass(false); return result; } public static final com.github.andyshaox.servlet.mapping.Mapping covertByType(Class clazz) { Mapping mapping = clazz.getAnnotation(Mapping.class); if (mapping == null) return null; com.github.andyshaox.servlet.mapping.Mapping result = com.github.andyshaox.servlet.mapping.Mapping.defaultMapping(); result.setConsumes(mapping.consumes().isEmpty() ? null : mapping.consumes()); Mappings.format(mapping.headers() , result.getHeaders()); result.setMethodType(Arrays.deepEquals(mapping.methodType() , Mappings.EMPTY_STR_ARRAY) ? null : mapping.methodType()); Mappings.format(mapping.attributes() , result.getAttributes()); result.setProduces(mapping.produces().isEmpty() ? null : mapping.produces()); result.setUrl(mapping.value().isEmpty() ? "/" + clazz.getSimpleName() : mapping.value()); result.setDefineClass(clazz); result.setClass(true); return result; } private static final void format(String[] values , Map map) { if (Arrays.deepEquals(values , Mappings.EMPTY_STR_ARRAY)) return; for (String value : values) { String[] tmp = StringOperation.split(value , Mappings.VALUE_SPLIT); map.put(tmp[0].trim() , tmp[1].trim()); } } private Mappings() { throw new AssertionError("No" + Mappings.class + " for you!"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy