Skip to content

Commit

Permalink
Bugfix with packageprefix
Browse files Browse the repository at this point in the history
  • Loading branch information
Rickvanderwaal committed Nov 12, 2015
1 parent 0a5987a commit ff8b7f1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<groupId>io.beanmapper</groupId>
<artifactId>beanmapper</artifactId>
<version>0.2.15</version>
<version>0.2.16-SNAPSHOT</version>
<packaging>jar</packaging>
<name>42 Bean Mapper</name>
<description>Easy-to-use bean mapper for conversion from form to object to view</description>
Expand Down
21 changes: 17 additions & 4 deletions src/main/java/io/beanmapper/BeanMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public class BeanMapper {
/**
* The list of packages (and subpackages) containing classes which are eligible for mapping.
*/
private List<Package> packagePrefixesForMappableClasses = new ArrayList<Package>();
private List<String> packagePrefixesForMappableClasses = new ArrayList<String>();

/**
* The list of converters that should be checked for conversions.
Expand Down Expand Up @@ -351,8 +351,8 @@ private void dealWithMappableNestedClass(BeanFieldMatch beanFieldMatch) {
* @return true if the class may be mapped, false if it may not
*/
private boolean isMappableClass(Class<?> clazz) {
for (Package packagePrefix : packagePrefixesForMappableClasses) {
if (clazz.getPackage() != null && clazz.getPackage().toString().startsWith(packagePrefix.toString())) {
for (String packagePrefix : packagePrefixesForMappableClasses) {
if (clazz.getPackage() != null && clazz.getPackage().getName().startsWith(packagePrefix)) {
return true;
}
}
Expand Down Expand Up @@ -417,7 +417,20 @@ private boolean isConverterFor(Class<?> sourceClass, Class<?> targetClass) {
* @param clazz the class which sets the package prefix for all mappable classes
*/
public final void addPackagePrefix(Class<?> clazz) {
packagePrefixesForMappableClasses.add(clazz.getPackage());
if(clazz.getPackage() != null) {
addPackagePrefix(clazz.getPackage().getName());
}
}

/**
* Adds a package on the basis of a class. All classes in that package and sub-packages are
* eligible for mapping. The root source and target do not need to be set as such, because
* the verification is only run against nested classes which should be mapped implicity as
* well
* @param packagePrefix the String which sets the package prefix for all mappable classes
*/
public final void addPackagePrefix(String packagePrefix) {
packagePrefixesForMappableClasses.add(packagePrefix);
}

/**
Expand Down

0 comments on commit ff8b7f1

Please sign in to comment.