/**
  * Returns the corresponded DMDL model definition.
  *
  * @param model the thundergate model
  * @return the converted model
  * @throws IllegalArgumentException if some parameters were {@code null}
  */
 public static AstModelDefinition<AstSummarize> generate(SummarizedModelDescription model) {
   if (model == null) {
     throw new IllegalArgumentException("model must not be null"); // $NON-NLS-1$
   }
   return new AstModelDefinition<AstSummarize>(
       null,
       ModelDefinitionKind.SUMMARIZED,
       AstBuilder.getDesciption("{0}を集約したモデル", model.getOriginalModel().getSimpleName()),
       Arrays.asList(
           new AstAttribute[] {
             AstBuilder.getAutoProjection(),
             AstBuilder.getNamespace(AstBuilder.toDmdlName(Constants.SOURCE_VIEW)),
             AstBuilder.getOriginalName(model.getReference().getSimpleName()),
           }),
       AstBuilder.toName(model.getReference()),
       new SummarizedModelGenerator(model).generateExpression());
 }
 private AstSummarize generateExpression() {
   return generateTerm(model.getOriginalModel(), model.getGroupBy());
 }