Java Code Examples for java.lang.reflect.Field#isAnnotationPresent()
The following examples show how to use
java.lang.reflect.Field#isAnnotationPresent() .
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: spring-data-dynamodb File: DynamoDBMappingContext.java License: Apache License 2.0 | 6 votes |
@Override protected boolean shouldCreatePersistentEntityFor(TypeInformation<?> type) { boolean hasHashKey = false; boolean hasRangeKey = false; for (Method method : type.getType().getMethods()) { if (method.isAnnotationPresent(DynamoDBHashKey.class)) hasHashKey = true; if (method.isAnnotationPresent(DynamoDBRangeKey.class)) hasRangeKey = true; } for (Field field : type.getType().getFields()) { if (field.isAnnotationPresent(DynamoDBHashKey.class)) hasHashKey = true; if (field.isAnnotationPresent(DynamoDBRangeKey.class)) hasRangeKey = true; } return type.getType().isAnnotationPresent(DynamoDBTable.class) || (hasHashKey && hasRangeKey); }
Example 2
Source Project: DeskChan File: MessageDataUtils.java License: GNU Lesser General Public License v3.0 | 6 votes |
private static Entry extractField(Field field, Object owner){ field.setAccessible(true); if (Modifier.isStatic(field.getModifiers())) { return null; } if (field.isAnnotationPresent(MessageData.Ignore.class)) { return null; } MessageData.FieldName fieldNameAnnotation = field.getAnnotation(MessageData.FieldName.class); String fieldName = fieldNameAnnotation != null ? fieldNameAnnotation.value() : field.getName(); try { Object fieldValue = field.get(owner); if (fieldValue != null) return new Entry(fieldName, serialize(fieldValue)); } catch (Exception e) { //System.out.println(e.getClass().getSimpleName() + " " + e.getMessage()); } return null; }
Example 3
Source Project: core-ng-project File: BeanValidatorBuilder.java License: Apache License 2.0 | 6 votes |
private boolean hasValidationAnnotation(Field field) { boolean hasAnnotation = field.isAnnotationPresent(NotNull.class) || field.isAnnotationPresent(NotBlank.class) || field.isAnnotationPresent(Max.class) || field.isAnnotationPresent(Min.class) || field.isAnnotationPresent(Pattern.class) || field.isAnnotationPresent(Size.class); if (hasAnnotation) return true; Class<?> targetClass = targetValidationClass(field); if (!isValueClass(targetClass)) { for (Field valueField : Classes.instanceFields(targetClass)) { if (hasValidationAnnotation(valueField)) return true; } } return false; }
Example 4
Source Project: tutorials File: DataAccessFieldCallback.java License: MIT License | 6 votes |
@Override public void doWith(final Field field) throws IllegalArgumentException, IllegalAccessException { if (!field.isAnnotationPresent(DataAccess.class)) { return; } ReflectionUtils.makeAccessible(field); final Type fieldGenericType = field.getGenericType(); // In this example, get actual "GenericDAO' type. final Class<?> generic = field.getType(); final Class<?> classValue = field.getDeclaredAnnotation(DataAccess.class).entity(); if (genericTypeIsValid(classValue, fieldGenericType)) { final String beanName = classValue.getSimpleName() + generic.getSimpleName(); final Object beanInstance = getBeanInstance(beanName, generic, classValue); field.set(bean, beanInstance); } else { throw new IllegalArgumentException(ERROR_ENTITY_VALUE_NOT_SAME); } }
Example 5
Source Project: openemm File: ReflectionTableParser.java License: GNU Affero General Public License v3.0 | 6 votes |
private Map<String, ColumnDefinition> getColumnDefinitionsFromFields(Object object) { Class<?> clazz = object.getClass(); if (Objects.isNull(AnnotationUtils.findAnnotation(clazz, textTableClass))) { return Collections.emptyMap(); } Map<String, ColumnDefinition> columnDefinitions = new LinkedHashMap<>(); for (Field field : object.getClass().getDeclaredFields()) { if (field.isAnnotationPresent(textColumnClass)) { TextColumn textColumn = field.getAnnotation(textColumnClass); String columnKey = StringUtils.defaultIfEmpty(textColumn.key(), field.getName()); columnDefinitions.put(columnKey, getColumnDefinition(textColumn, field)); } } return columnDefinitions; }
Example 6
Source Project: hawkular-alerts File: ActionPlugins.java License: Apache License 2.0 | 6 votes |
private void injectActionPluginSender(String actionPlugin, ActionPluginListener pluginInstance) throws Exception { if (pluginInstance == null) { throw new IllegalArgumentException("pluginInstance must be not null"); } Field[] fields = pluginInstance.getClass().getDeclaredFields(); Field sender = null; for (Field field : fields) { if (field.isAnnotationPresent(Sender.class) && field.getType().isAssignableFrom(ActionPluginSender.class)) { sender = field; break; } } if (sender != null) { ActionPluginSender standaloneSender = new StandaloneActionPluginSender(actions); sender.setAccessible(true); sender.set(pluginInstance, standaloneSender); senders.put(actionPlugin, standaloneSender); } }
Example 7
Source Project: gecco File: HtmlParser.java License: MIT License | 5 votes |
public Object $basic(String selector, Field field) throws Exception { if (field.isAnnotationPresent(Text.class)) {// @Text Text text = field.getAnnotation(Text.class); String value = $text(selector, text.own()); return Conversion.getValue(field.getType(), value); } else if (field.isAnnotationPresent(Image.class)) {// @Image Image image = field.getAnnotation(Image.class); String imageSrc = $image(selector, image.value()); /*String localPath = DownloadImage.download(image.download(), imageSrc); if (StringUtils.isNotEmpty(localPath)) { return localPath; }*/ return imageSrc; } else if (field.isAnnotationPresent(Href.class)) {// @Href Href href = field.getAnnotation(Href.class); String url = $href(selector, href.value()); return url; } else if (field.isAnnotationPresent(Attr.class)) {// @Attr Attr attr = field.getAnnotation(Attr.class); String name = attr.value(); return Conversion.getValue(field.getType(), $attr(selector, name)); } else if (field.isAnnotationPresent(Html.class)) {// @Html Html html = field.getAnnotation(Html.class); return $html(selector, html.outer()); } else {// @Html return $html(selector); } }
Example 8
Source Project: elasticsearch-mapper File: StringFieldMapper.java License: Apache License 2.0 | 5 votes |
public static void mapDataType(XContentBuilder mappingBuilder, Field field) throws IOException { if (!isValidStringFieldType(field)) { throw new IllegalArgumentException( String.format("field type[%s] is invalid type of string.", field.getType())); } if (field.isAnnotationPresent(StringField.class)) { StringField stringField = field.getDeclaredAnnotation(StringField.class); mapDataType(mappingBuilder, stringField); return; } mappingBuilder.field("type", "keyword"); }
Example 9
Source Project: c2mon File: DOMFactory.java License: GNU Lesser General Public License v3.0 | 5 votes |
/** * Generates an xml element from this pojo. Translating the fields like described * in the class description. * @param document The document in which the nodes should be. * @param rootName This is to use another name for the root element than the * simple class name. * @param pojo The pojo to take the fields from. * @param attributes The fields which should be used as attributes and not * as elements. * @return The create element representing the provided pojo. * @throws ParserConfigurationException Might throw a ParserConfigurationException. * @throws IllegalAccessException Might throw a IllegalAccessException. * @throws InstantiationException Might throw a InstantiationException. */ public Element generateSimpleElement(final Document document, final String rootName, final Object pojo, final List<String> attributes) throws ParserConfigurationException, IllegalAccessException, InstantiationException { Element rootNode = document.createElementNS(getDefaultNamespace(), rootName); List<Field> fields = getNonTransientSimpleFields(pojo.getClass()); for (Field field : fields) { field.setAccessible(true); String fieldName = field.getName(); if (field.get(pojo) != null) { if (!attributes.contains(fieldName)) { Element element = document.createElementNS(getDefaultNamespace(), getElementName(field)); // handle CDATAs if (field.isAnnotationPresent(XmlValue.class)) { CDATASection cdata = document.createCDATASection(field.get(pojo).toString()); element.appendChild(cdata); } else { element.setTextContent(field.get(pojo).toString()); } rootNode.appendChild(element); } else { rootNode.setAttribute(getAttributeName(field), field.get(pojo).toString()); } } } return rootNode; }
Example 10
Source Project: jkes File: ReflectionUtils.java License: Apache License 2.0 | 5 votes |
/** * Get annotated field. The field can be in parent field * * @param clazz clazz * @param fieldName fieldName * @param annotation annotation * @return annotated field. */ public static Field getAnnotatedField(Class<?> clazz, String fieldName, Class<? extends Annotation> annotation) { do { Field[] fields = clazz.getDeclaredFields(); for(Field field : fields) { if(Objects.equals(fieldName, field.getName()) && field.isAnnotationPresent(annotation)) { return field; } } clazz = clazz.getSuperclass(); }while (clazz != null); return null; }
Example 11
Source Project: weixin-java-tools File: SignUtils.java License: Apache License 2.0 | 5 votes |
/** * 将bean按照@XStreamAlias标识的字符串内容生成以之为key的map对象 * * @param bean 包含@XStreamAlias的xml bean对象 * @return map对象 */ public static Map<String, String> xmlBean2Map(Object bean) { Map<String, String> result = Maps.newHashMap(); List<Field> fields = new ArrayList<>(Arrays.asList(bean.getClass().getDeclaredFields())); fields.addAll(Arrays.asList(bean.getClass().getSuperclass().getDeclaredFields())); if(bean.getClass().getSuperclass().getSuperclass() == BaseWxPayRequest.class){ fields.addAll(Arrays.asList(BaseWxPayRequest.class.getDeclaredFields())); } if(bean.getClass().getSuperclass().getSuperclass() == BaseWxPayResult.class){ fields.addAll(Arrays.asList(BaseWxPayResult.class.getDeclaredFields())); } for (Field field : fields) { try { boolean isAccessible = field.isAccessible(); field.setAccessible(true); if (field.get(bean) == null) { field.setAccessible(isAccessible); continue; } if (field.isAnnotationPresent(XStreamAlias.class)) { result.put(field.getAnnotation(XStreamAlias.class).value(), field.get(bean).toString()); } else if (!Modifier.isStatic(field.getModifiers())) { //忽略掉静态成员变量 result.put(field.getName(), field.get(bean).toString()); } field.setAccessible(isAccessible); } catch (SecurityException | IllegalArgumentException | IllegalAccessException e) { log.error(e.getMessage(), e); } } return result; }
Example 12
Source Project: fluency File: Validatable.java License: Apache License 2.0 | 5 votes |
default void validate() { Class<? extends Object> klass = getClass(); while (klass != Object.class) { for (Field field : klass.getDeclaredFields()) { for (ValidationList.Validation validation : ValidationList.VALIDATIONS) { Class<? extends Annotation> annotationClass = validation.annotationClass; if (field.isAnnotationPresent(annotationClass)) { Annotation annotation = field.getAnnotation(annotationClass); Object value; try { field.setAccessible(true); value = field.get(this); } catch (IllegalAccessException e) { throw new RuntimeException( String.format("Failed to get a value from field (%s)", field), e); } if (value == null) { break; } if (!(value instanceof Number)) { throw new IllegalArgumentException( String.format("This field has (%s), but actual field is (%s)", annotation, value.getClass())); } if (!validation.isValid.apply(annotation, (Number) value)) { throw new IllegalArgumentException( String.format(validation.messageTemplate, field, value)); } } } } klass = klass.getSuperclass(); } }
Example 13
Source Project: Battery-Metrics File: HealthStatsMetrics.java License: MIT License | 5 votes |
private static void readKeyNames() { try { Class[] healthStatsClasses = { UidHealthStats.class, PidHealthStats.class, ProcessHealthStats.class, PackageHealthStats.class, ServiceHealthStats.class }; Class annotationClass = Class.forName("android.os.health.HealthKeys$Constant"); for (Class clazz : healthStatsClasses) { Field[] fields = clazz.getFields(); for (Field field : fields) { if (field.isAnnotationPresent(annotationClass)) { sKeyNames.put(field.getInt(null), field.getName()); } } } return; } catch (IllegalAccessException iae) { SystemMetricsLogger.wtf(TAG, "Unable to read constant names", iae); } catch (ClassNotFoundException cnfe) { SystemMetricsLogger.wtf(TAG, "Unable to find constant annotation", cnfe); } // Mark as attempted and invalid sKeyNames.put(-1, "Unable to read"); }
Example 14
Source Project: openjdk-jdk8u File: RuntimeInlineAnnotationReader.java License: GNU General Public License v2.0 | 4 votes |
public boolean hasFieldAnnotation(Class<? extends Annotation> annotationType, Field field) { return field.isAnnotationPresent(annotationType); }
Example 15
Source Project: zstack File: RESTApiJsonTemplateGenerator.java License: Apache License 2.0 | 4 votes |
private static JSONObject dumpObject(Class<?> clazz, Stack<Class> hasDone) throws JSONException { JSONObject jo = nj(); if (hasDone.contains(clazz)) { jo.put("refer to", clazz.getName()); return jo; } hasDone.push(clazz); logger.debug(String.format("dumping object: %s", clazz.getName())); do { Field[] fields = clazz.getDeclaredFields(); for (Field f : fields) { if (f.isAnnotationPresent(APINoSee.class)) { continue; } if (Modifier.isStatic(f.getModifiers())) { continue; } Class ct = f.getType(); Type t = f.getGenericType(); if (ct.equals(clazz)) { jo.put(f.getName(), "refer to self"); } else if (t instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) t; if (Collection.class.isAssignableFrom(ct)) { JSONArray arr = dumpCollection(pt, hasDone); jo.put(f.getName(), arr); } else if (Map.class.isAssignableFrom(ct)) { Class<?> keyType = (Class<?>) pt.getActualTypeArguments()[0]; if (!String.class.isAssignableFrom(keyType)) { throw new IllegalArgumentException(String.format( "Field[%s] of class[%s] is type of Map, but type[%s] of its key element is not String, unable to dump", f.getName(), clazz.getName(), keyType)); } JSONObject mj = dumpMap(pt, hasDone); jo.put(f.getName(), mj); } else { throw new IllegalArgumentException(String.format( "Field[%s] of class[%s] is type of java generic type[%s], but it's not Collection or Map, unable to dump", f.getName(), clazz.getName(), pt.getRawType())); } } else { if (isPrimitiveType(ct)) { jo.put(f.getName(), populateTemplateString(f)); } else if (Collection.class.isAssignableFrom(ct)) { logger.warn(String.format( "Field[%s] of class[%s] is type of Collection, unable to dump it because it doesn't have java generic type information", f.getName(), clazz.getName())); jo.put(f.getName(), dumpObject(ArrayList.class, hasDone)); } else if (Map.class.isAssignableFrom(ct)) { logger.warn(String.format( "Field[%s] of class[%s] is type of Map, unable to dump it because it doesn't have java generic type information", f.getName(), clazz.getName())); jo.put(f.getName(), dumpObject(HashMap.class, hasDone)); } else { logger.debug(String.format("dumping %s, %s", f.getName(), ct.getName())); JSONObject oj = dumpObject(ct, hasDone); jo.put(f.getName(), oj); } } } clazz = clazz.getSuperclass(); } while (clazz != null && clazz != Object.class); hasDone.pop(); return jo; }
Example 16
Source Project: core-ng-project File: EntityDecoderBuilder.java License: Apache License 2.0 | 4 votes |
private String mongoField(Field field) { if (field.isAnnotationPresent(Id.class)) return "_id"; return field.getDeclaredAnnotation(core.framework.mongo.Field.class).name(); }
Example 17
Source Project: jeddict File: TechContext.java License: Apache License 2.0 | 4 votes |
public LayerConfigPanel createPanel(Project project, SourceGroup sourceGroup, String _package) { if (panel == null) { if (isValid()) { try { panel = getTechnology().panel().newInstance(); } catch (InstantiationException | IllegalAccessException ex) { Exceptions.printStackTrace(ex); } } else { panel = new DefaultConfigPanel(); } Class<LayerConfigData> configDataClass = panel.getConfigDataClass(); panel.setConfigData(PreferenceUtils.get(project, configDataClass)); Map<Class<? extends LayerConfigPanel>, LayerConfigPanel> siblingData = new HashMap<>(); Map<Class<? extends LayerConfigPanel>, LayerConfigPanel> cacheSiblingData = new HashMap<>(); for(TechContext siblingContext : getSiblingTechContext()){ LayerConfigPanel siblingPanel = siblingContext.createPanel(project, sourceGroup, _package); siblingData.put(siblingPanel.getClass(), siblingPanel); } cacheSiblingData.putAll(siblingData); cacheSiblingData.put(panel.getClass(), panel); Iterator<Entry<Class<? extends LayerConfigPanel>, LayerConfigPanel>> iterator = siblingData.entrySet().iterator(); while(iterator.hasNext()){ Entry<Class<? extends LayerConfigPanel>, LayerConfigPanel> entry = iterator.next(); LayerConfigPanel instance = entry.getValue(); List<Field> fields = Arrays.asList(instance.getClass().getDeclaredFields()); for (Field field : fields) { if (field.isAnnotationPresent(ConfigData.class)) { field.setAccessible(true); try { if (LayerConfigPanel.class.isAssignableFrom(field.getType())) { field.set(instance, cacheSiblingData.get(field.getType())); } } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } } instance.init(_package, project, sourceGroup); instance.read(); } if (parentTechContext == null) { //if sibling context then first inject field and then init panel.init(_package, project, sourceGroup); panel.read(); } } return panel; }
Example 18
Source Project: FHIR File: ModelSupport.java License: Apache License 2.0 | 4 votes |
private static boolean isChoice(Field field) { return field.isAnnotationPresent(Choice.class); }
Example 19
Source Project: Storm File: TableCreateStatement.java License: Apache License 2.0 | 4 votes |
private boolean isUnique(Field field) { return field.isAnnotationPresent(UNIQUE_CLASS); }
Example 20
Source Project: minnal File: ClassUtils.java License: Apache License 2.0 | 4 votes |
public static boolean hasAnnotation(Field field, Class<? extends Annotation> clazz) { return field.isAnnotationPresent(clazz); }