Library for converting from one Java class to a dissimilar Java class with similar names based on the Bean convention
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src
.bettercodehub.yml
.gitignore
.travis.yml
CHANGELOG.md
README.md
pom.xml

README.md

Build Status Codacy Badge BCH compliance codecov Maven Central Javadocs Apache 2

Beanmapper

Beanmapper is a Java library for mapping dissimilar Java classes with similar names. The use cases for Beanmapper are the following:

  • mapping from forms to entities, because:
    • for security reasons you want to accept only a limited number of fields as input
    • the form fields are simplified to support frontend processing
  • mapping from entities to results, because:
    • you want to simplify the result for frontend processing
    • you want to expose a limited number of fields for security reasons

Maven dependency

In order to use Beanmapper in your project, simply add the following Maven dependency:

<dependency>
    <groupId>io.beanmapper</groupId>
    <artifactId>beanmapper</artifactId>
    <version>3.0.1</version>
</dependency>

Getting started

You want to map two dissimilar classes with no hierarchical relation (save java.lang.Object), but with a fairly similar naming schema for the fields.

Basic use case for Beanmapper

public class SourceClass {
   public Long id;
   public String name;
   public LocalDate date;
}
public class TargetClass {
   public String name;
   public LocalDate date;
}
BeanMapper beanMapper = new BeanMapper();
SourceClass source = new SourceClass();
source.id = 42L;
source.name = "Henk";
source.date = LocalDate.of(2015, 4, 1));
TargetClass target = beanMapper.map(source, TargetClass.class);

What's more?

The library can help you with the following situations:

  • nested dissimilar classes
  • ignoring parts
  • mapping to fields with other names, even if nested
  • settings defaults if no value is found
  • unwrapping class layers in order to flatten the structure
  • works directly on the bean, no getters/setters required
  • supports a combination of automated and manual processing
  • adding conversion modules for data types

What Beanmapper is not for

Beanmapper is not a library for deep-copying classes. Whenever Beanmapper can get away with a shallow copy, it will do so. Deep-copying is reserved for dissimilar classes.

Want to know more?

Find the rest of the documentation on beanmapper.io.

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.