2
Spring LDAP ODMを使用してEntry
( "エンティティ")をマップしました。私は、このクラスでのユニットテストを実行すると、私は初期化時にコンソールに警告を得る:Spring LDAP ODM - エントリクラスを最終宣言する必要があります警告
Mar 9, 2012 2:32:40 PM org.springframework.ldap.odm.core.impl.ObjectMetaData <init>
WARNING: The Entry class Superhero should be declared final
マッピングされたクラスは、次のようになります。
@Entry(objectClasses = {"batman", "superman", "spiderman", "dontworryaboutthese"})
public class Superhero {
@Id
@JsonIgnore
private Name dn;
...
私は、Google検索を経由して、関連する何かを見つけることができませんこの警告に関して。これを記録するSpringコードは次のとおりです。
public ObjectMetaData(Class<?> clazz) {
if (LOG.isDebugEnabled()) {
LOG.debug(String.format("Extracting metadata from %1$s", clazz));
}
// Get object class metadata - the @Entity annotation
Entry entity = (Entry)clazz.getAnnotation(Entry.class);
if (entity != null) {
// Default objectclass name to the class name unless it's specified
// in @Entity(name={objectclass1, objectclass2});
String[] localObjectClasses = entity.objectClasses();
if (localObjectClasses != null && localObjectClasses.length > 0 && localObjectClasses[0].length() > 0) {
for (String localObjectClass:localObjectClasses) {
objectClasses.add(new CaseIgnoreString(localObjectClass));
}
} else {
objectClasses.add(new CaseIgnoreString(clazz.getSimpleName()));
}
} else {
throw new MetaDataException(String.format("Class %1$s must have a class level %2$s annotation", clazz,
Entry.class));
}
// Check the class is final
if (!Modifier.isFinal(clazz.getModifiers())) {
LOG.warn(String.format("The Entry class %1$s should be declared final", clazz.getSimpleName()));
}
...
洞察力があれば分かります。私は、クラスを最終として宣言することは拡張できないことを意味しますが、なぜSpring ODMは気になるのでしょうか?