{
throw new IllegalArgumentException("Must specify a domain @Entity on which to operate.");
}
final JavaSourceFacet java = project.getFacet(JavaSourceFacet.class);
RestGeneratedResources generatedResourcesEvent = new RestGeneratedResources();
for (JavaResource jr : javaTargets)
{
JavaClass entity = (JavaClass) (jr).getJavaSource();
String idType = resolveIdType(entity);
if (!Types.isBasicType(idType))
{
ShellMessages.error(out, "Skipped class [" + entity.getQualifiedName() + "] because @Id type [" + idType
+ "] is not supported by endpoint generation.");
continue;
}
JavaClass resource = null;
if(strategy.equals(ResourceStrategy.JPA_ENTITY))
{
resource = entityResourceGenerator.generateFrom(entity, idType, contentType, generatedResourcesEvent);
}
else if (strategy.equals(ResourceStrategy.ROOT_AND_NESTED_DTO))
{
resource = dtoResourceGenerator.generateFrom(entity, idType, contentType, generatedResourcesEvent);
}
generatedResourcesEvent.addToEntities(jr);
if (!java.getJavaResource(resource).exists()
|| prompt.promptBoolean("Endpoint [" + resource.getQualifiedName() + "] already, exists. Overwrite?"))
{
generatedResourcesEvent.addToEndpoints(java.saveJavaSource(resource));
ShellMessages.success(out, "Generated REST endpoint for [" + entity.getQualifiedName() + "]");
}
else
ShellMessages.info(out, "Aborted REST endpoint generation for [" + entity.getQualifiedName() + "]");
}
if (!generatedResourcesEvent.getEntities().isEmpty())
{
generatedEvent.fire(generatedResourcesEvent);
}
}