Bean-Metadata

Open source library for java beans metadata collection

License

License

Categories

Categories

Data
GroupId

GroupId

com.afrunt
ArtifactId

ArtifactId

bean-metadata
Last Version

Last Version

0.4
Release Date

Release Date

Type

Type

jar
Description

Description

Bean-Metadata
Open source library for java beans metadata collection
Project URL

Project URL

https://github.com/afrunt/jach
Source Code Management

Source Code Management

http://github.com/afrunt/bean-metadata/tree/master

Download bean-metadata

How to add to project

<!-- https://jarcasting.com/artifacts/com.afrunt/bean-metadata/ -->
<dependency>
    <groupId>com.afrunt</groupId>
    <artifactId>bean-metadata</artifactId>
    <version>0.4</version>
</dependency>
// https://jarcasting.com/artifacts/com.afrunt/bean-metadata/
implementation 'com.afrunt:bean-metadata:0.4'
// https://jarcasting.com/artifacts/com.afrunt/bean-metadata/
implementation ("com.afrunt:bean-metadata:0.4")
'com.afrunt:bean-metadata:jar:0.4'
<dependency org="com.afrunt" name="bean-metadata" rev="0.4">
  <artifact name="bean-metadata" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.afrunt', module='bean-metadata', version='0.4')
)
libraryDependencies += "com.afrunt" % "bean-metadata" % "0.4"
[com.afrunt/bean-metadata "0.4"]

Dependencies

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

bean-metadata Build Status

It is the simple library, that helps you to collect metadata of the java-beans. jACH project is built on top of this framework, so there you can find the best example of use

Add bean-metadata to your project. for maven projects just add this dependency:

<dependency>
  <groupId>com.afrunt</groupId>
  <artifactId>bean-metadata</artifactId>
  <version>0.4</version>
</dependency>

The easiest usage scenario is to collect metadata from one bean using BasicMetadataCollector

BasicMetadataCollector metadataCollector = new BasicMetadataCollector();
BeanMetadata<FieldMetadata> beanMetadata = metadataCollector.collectBeanMetadata(Bean.class);

assertTrue(beanMetadata.isAnnotatedWith(TypeAnnotation.class));

assertEquals(2, beanMetadata.getFieldsMetadata().size());

assertEquals("bean", beanMetadata.getAnnotation(TypeAnnotation.class).value());

assertTrue(beanMetadata.hasField("id"));
assertTrue(beanMetadata.hasField("value"));

FieldMetadata id = beanMetadata.getFieldMetadata("id");

assertTrue(id.isAnnotatedWithAll(FieldAnnotation.class, AnotherFieldAnnotation.class));
assertTrue(id.isString());

You can collect the metadata from collection of beans

BasicMetadataCollector metadataCollector = new BasicMetadataCollector();
Metadata<BeanMetadata<FieldMetadata>, FieldMetadata> metadata = metadataCollector.collectMetadata(BEANS);

But the most flexible scenario is to extend the MetadataCollector and types of metadata

public class BasicMetadataCollector extends MetadataCollector<Metadata<BeanMetadata<FieldMetadata>, FieldMetadata>, BeanMetadata<FieldMetadata>, FieldMetadata> {

    @Override
    protected Metadata<BeanMetadata<FieldMetadata>, FieldMetadata> newMetadata() {
        return new Metadata<>();
    }

    @Override
    protected BeanMetadata<FieldMetadata> newBeanMetadata() {
        return new BeanMetadata<>();
    }

    @Override
    protected FieldMetadata newFieldMetadata() {
        return new FieldMetadata();
    }
}

Versions

Version
0.4
0.2
0.1.2-dev
0.1-dev