return; // Type exists already - nothing to do
}
final String classMdId = PhysicalTypeIdentifier.createIdentifier(
classType, pathResolver.getPath(classIdentifier));
final ClassOrInterfaceTypeDetailsBuilder cidBuilder = new ClassOrInterfaceTypeDetailsBuilder(
classMdId, Modifier.PUBLIC, classType,
PhysicalTypeCategory.CLASS);
cidBuilder.addAnnotation(new AnnotationMetadataBuilder(
RooJavaType.ROO_JAVA_BEAN));
cidBuilder.addAnnotation(new AnnotationMetadataBuilder(
RooJavaType.ROO_TO_STRING));
final List<AnnotationAttributeValue<?>> attributes = new ArrayList<AnnotationAttributeValue<?>>();
if (!idType.equals(JdkJavaType.BIG_INTEGER)) {
attributes.add(new ClassAttributeValue(new JavaSymbolName(
"identifierType"), idType));
}
cidBuilder.addAnnotation(new AnnotationMetadataBuilder(
RooJavaType.ROO_MONGO_ENTITY, attributes));
typeManagementService.createOrUpdateTypeOnDisk(cidBuilder.build());
if (testAutomatically) {
integrationTestOperations.newIntegrationTest(classType, false);
dataOnDemandOperations.newDod(classType,
new JavaType(classType.getFullyQualifiedTypeName()