Android Open Source - task4java Reflection Cache From Project Back to project page task4java .
License The source code is released under:
Apache License
If you think the Android project task4java listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code /*
* Copyright (c) 2014 Andree Hagelstein, Maik Schulze, Deutsche Telekom AG. All Rights Reserved.
* / / w w w . j a v a 2 s . c o m
* Filename: ReflectionCache.java
*/
package com.task4java.lang.reflect;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReflectionCache {
private static Map<Class<?>, List<Annotation>> _classAnnotations;
private static Map<Field, Annotation[]> _fieldAnnotations;
private static Map<Class<?>, List<Field>> _classFields;
public static List<Field> getClassFields(Class<?> clazz) {
if (_classFields == null) {
_classFields = new HashMap<Class<?>, List<Field>>();
}
if (!_classFields.containsKey(clazz)) {
List<Field> classFields = new ArrayList<Field>();
addClassFields(clazz, classFields);
_classFields.put(clazz, classFields);
}
return _classFields.get(clazz);
}
public static Annotation[] getFieldAnnotations(Field field) {
if (_fieldAnnotations == null) {
_fieldAnnotations = new HashMap<Field, Annotation[]>();
}
if (!_fieldAnnotations.containsKey(field)) {
_fieldAnnotations.put(field, field.getAnnotations());
}
return _fieldAnnotations.get(field);
}
public static List<Annotation> getClassAnnotations(Class<?> clazz) {
if (_classAnnotations == null) {
_classAnnotations = new HashMap<Class<?>, List<Annotation>>();
}
if (!_classAnnotations.containsKey(clazz)) {
List<Annotation> classAnnotations = new ArrayList<Annotation>();
addClassAnnotations(clazz, classAnnotations);
_classAnnotations.put(clazz, classAnnotations);
}
return _classAnnotations.get(clazz);
}
private static void addClassFields(Class<?> clazz, List<Field> fields) {
for (Field classField : clazz.getDeclaredFields()) {
fields.add(classField);
}
if (clazz.getSuperclass() != null) {
addClassFields(clazz.getSuperclass(), fields);
}
}
private static void addClassAnnotations(Class<?> clazz, List<Annotation> annotations) {
for (Annotation annotation : clazz.getAnnotations()) {
annotations.add(annotation);
}
if (clazz.getSuperclass() != null) {
addClassAnnotations(clazz.getSuperclass(), annotations);
}
}
}
Java Source Code List com.task4java.IndexedList.java com.task4java.KeyValuePair.java com.task4java.Stopwatch.java com.task4java.StringUtils.java com.task4java.Tuple.java com.task4java.android.activity.ActivityUtils.java com.task4java.android.activity.BaseActivity.java com.task4java.android.annotation.Annotations.java com.task4java.android.examples.App.java com.task4java.android.examples.activity.AboutActivity.java com.task4java.android.examples.activity.ExpandableListAdapter.java com.task4java.android.examples.activity.MainActivity.java com.task4java.android.examples.activity.WelcomeActivity.java com.task4java.android.examples.backend.AndroidServiceClient.java com.task4java.android.util.concurrent.ActivityExecutor.java com.task4java.android.util.concurrent.HandlerExecutor.java com.task4java.data.backend.IServiceClient.java com.task4java.data.backend.ServiceClient.java com.task4java.data.backend.model.MainMenuAnnotation.java com.task4java.data.frontend.ApplicationClient.java com.task4java.data.frontend.model.MainMenuItemGroupList.java com.task4java.data.frontend.model.MainMenuItemGroup.java com.task4java.data.frontend.model.MainMenuItem.java com.task4java.http.HttpHeaders.java com.task4java.http.HttpMimeTypes.java com.task4java.http.HttpRequestMethods.java com.task4java.http.HttpStatusCodes.java com.task4java.http.client.HttpContent.java com.task4java.http.client.HttpStringContent.java com.task4java.http.client.IImageClient.java com.task4java.http.client.IRestClient.java com.task4java.http.client.ImageClientGingerbread.java com.task4java.http.client.ImageClient.java com.task4java.http.client.ImageResponse.java com.task4java.http.client.RestClientGingerbread.java com.task4java.http.client.RestClient.java com.task4java.http.client.RestResponse.java com.task4java.lang.reflect.ReflectionCache.java com.task4java.net.URLBuilder.java com.task4java.util.concurrent.CallableTask.java com.task4java.util.concurrent.CallableValue2.java com.task4java.util.concurrent.CallableValue.java com.task4java.util.concurrent.ITaskStart.java com.task4java.util.concurrent.ITask.java com.task4java.util.concurrent.TaskCompletionSource.java com.task4java.util.concurrent.TaskContinuationOptions.java com.task4java.util.concurrent.TaskException.java com.task4java.util.concurrent.TaskFactory.java com.task4java.util.concurrent.TaskResultException.java com.task4java.util.concurrent.TaskStartException.java com.task4java.util.concurrent.Task.java com.task4java.util.log.ConsoleLogger.java com.task4java.util.log.ILog.java com.task4java.util.log.Logger.java