Skip to content

Commit cfd3e5f

Browse files
committed
refactoring
1 parent 25ad932 commit cfd3e5f

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

jbbp/src/main/java/com/igormaznitsa/jbbp/mapper/JBBPMapper.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,25 +336,39 @@ public static List<MappedFieldRecord> findAffectedFields(final Object instance)
336336
continue;
337337
}
338338

339-
if (!ReflectUtils.isPotentiallyAccessibleField(mappingField)) {
340-
mappingField = ReflectUtils.makeAccessible(mappingField);
341-
}
342-
343339
final Bin fieldAnno = mappingField.getAnnotation(Bin.class);
344340
final Bin mappedAnno;
345341
if ((fieldAnno == null && defaultAnno == null) || mappingField.getName().indexOf('$') >= 0) {
346342
continue;
347343
}
344+
mappedAnno = fieldAnno == null ? defaultAnno : fieldAnno;
348345

349-
if (Modifier.isPrivate(fieldModifiers)) {
350-
if (fieldAnno == null) {
346+
if (fieldAnno == null) {
347+
if (Modifier.isTransient(fieldModifiers)
348+
|| Modifier.isStatic(fieldModifiers)
349+
|| Modifier.isPrivate(fieldModifiers)
350+
|| Modifier.isFinal(fieldModifiers)) {
351351
continue;
352+
}
353+
} else {
354+
final String disallowedModifier;
355+
if (Modifier.isStatic(fieldModifiers)) {
356+
disallowedModifier = "STATIC";
357+
} else if (Modifier.isFinal(fieldModifiers)) {
358+
disallowedModifier = "FINAL";
359+
} else if (Modifier.isPrivate(fieldModifiers)) {
360+
disallowedModifier = "PRIVATE";
352361
} else {
353-
throw new JBBPMapperException("Detected @Bin marked private field", null, processingClazz, mappingField, null);
362+
disallowedModifier = null;
363+
}
364+
if (disallowedModifier != null) {
365+
throw new JBBPMapperException("Detected @Bin marked " + disallowedModifier + " field", null, processingClazz, mappingField, null);
354366
}
355367
}
356368

357-
mappedAnno = fieldAnno == null ? defaultAnno : fieldAnno;
369+
if (!ReflectUtils.isPotentiallyAccessibleField(mappingField)) {
370+
mappingField = ReflectUtils.makeAccessible(mappingField);
371+
}
358372

359373
try {
360374
result.add(new MappedFieldRecord(mappingField, mappingClass, mappedAnno));

0 commit comments

Comments
 (0)