@CliOptionAutocompleteIndicator(command = "jpa audit add", param = "entity", help = "You must specify an entity") public List<String> getAllEntities(ShellContext shellContext) { // Get current value of class String currentText = shellContext.getParameters().get("entity"); // Create results to return List<String> results = new ArrayList<String>(); // Get entity full qualified names Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); for (ClassOrInterfaceTypeDetails entity : entities) { if (!entity.isAbstract()) { String name = getClasspathOperations().replaceTopLevelPackageString(entity, currentText); if (!results.contains(name)) { results.add(name); } } } return results; }
@Override public void generateAllRepositories(JavaPackage repositoriesPackage) { // Getting all project entities Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); Iterator<ClassOrInterfaceTypeDetails> it = entities.iterator(); while (it.hasNext()) { ClassOrInterfaceTypeDetails entity = it.next(); // Ignore abstract classes if (entity.isAbstract()) { continue; } // Generating new interface type using entity JavaType interfaceType = new JavaType(repositoriesPackage.getFullyQualifiedPackageName().concat(".") .concat(entity.getType().getSimpleTypeName()).concat("Repository"), repositoriesPackage.getModule()); // Delegate on simple add repository method addRepository(interfaceType, entity.getType(), null, false); } }
/** * Find entities in project and returns a list with their fully qualified * names. * * @param shellContext * @return List<String> with available entity full qualified names. */ @CliOptionAutocompleteIndicator( command = "web mvc controller", param = "entity", help = "--entity parameter must be an existing class annotated with @RooEntity. Please, assign a valid one.") public List<String> getAllEntities(ShellContext shellContext) { // Get current value of class String currentText = shellContext.getParameters().get("entity"); // Create results to return List<String> results = new ArrayList<String>(); // Get entity full qualified names Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); for (ClassOrInterfaceTypeDetails entity : entities) { if (!entity.isAbstract()) { String name = getClasspathOperations().replaceTopLevelPackageString(entity, currentText); if (!results.contains(name)) { results.add(name); } } } return results; }
if (entityDetails.isAbstract()) { continue;
@Override public void createOrUpdateDetailControllersForAllEntities( ControllerMVCResponseService responseType, JavaPackage controllerPackage, String viewsList) { // Getting all entities annotated with @RooJpaEntity Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); for (ClassOrInterfaceTypeDetails entity : entities) { if (!entity.isAbstract()) { createOrUpdateDetailControllerForEntity(entity.getType(), "", responseType, controllerPackage, viewsList); } } }
@CliOptionAutocompleteIndicator(command = "test unit", help = "Option `--class` must " + "be a non-abstract valid type. Please, use auto-complete feature to select it.", param = "class") public List<String> getClassPosibleValues(ShellContext shellContext) { // Get current value of class String currentText = shellContext.getParameters().get("class"); // Create results to return List<String> results = new ArrayList<String>(); // Look for all valid types for all available test creators for (TestCreatorProvider creator : getAllTestCreators()) { if (creator.isUnitTestCreationAvailable()) { for (JavaType annotationType : creator.getValidTypes()) { // Look for types with this annotation type Set<ClassOrInterfaceTypeDetails> types = typeLocationService.findClassesOrInterfaceDetailsWithAnnotation(annotationType); for (ClassOrInterfaceTypeDetails typeCid : types) { String name = replaceTopLevelPackageString(typeCid.getType(), currentText); if (!results.contains(name) && !typeCid.isAbstract()) { results.add(name); } } } } } return results; }
/** * This operation will generate or update a controller for every class * annotated with @RooJpaEntity * * @param responseType * View provider to use * @param controllerPackage * Package where is situated the controller * @param pathPrefix * Prefix to use in RequestMapping */ @Override public void createOrUpdateControllerForAllEntities(ControllerMVCResponseService responseType, JavaPackage controllerPackage, String pathPrefix) { // Getting all entities annotated with @RooJpaEntity Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); for (ClassOrInterfaceTypeDetails entity : entities) { if (!entity.isAbstract()) { createOrUpdateControllerForEntity(entity.getType(), responseType, controllerPackage, pathPrefix); } } }
@Override public void addAllServices(JavaPackage apiPackage, JavaPackage implPackage) { Validate.notNull(apiPackage.getModule(), "ApiPackage module is required"); Validate.notNull(implPackage.getModule(), "ImplPackage module is required"); // Getting all generated entities Set<ClassOrInterfaceTypeDetails> entities = typeLocationService.findClassesOrInterfaceDetailsWithAnnotation(ROO_JPA_ENTITY); for (final ClassOrInterfaceTypeDetails domainType : entities) { // Ignore abstract entities or entities without repository if (!domainType.isAbstract()) { // Get repository ClassOrInterfaceTypeDetails repository = repositoryJpaLocator.getRepository(domainType.getName()); if (repository != null) { // Creating service interfaces for every entity JavaType interfaceType = new JavaType(String.format("%s.%sService", apiPackage.getFullyQualifiedPackageName(), domainType.getName().getSimpleTypeName()), apiPackage.getModule()); // Creating service implementation for every entity JavaType implType = new JavaType(String.format("%s.%sServiceImpl", implPackage .getFullyQualifiedPackageName(), domainType.getName().getSimpleTypeName()), implPackage.getModule()); // Delegates on individual service creator addService(domainType.getType(), repository.getName(), interfaceType, implType); } } } }
@CliOptionAutocompleteIndicator(command = "jpa audit add", param = "entity", help = "You must specify an entity") public List<String> getAllEntities(ShellContext shellContext) { // Get current value of class String currentText = shellContext.getParameters().get("entity"); // Create results to return List<String> results = new ArrayList<String>(); // Get entity full qualified names Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); for (ClassOrInterfaceTypeDetails entity : entities) { if (!entity.isAbstract()) { String name = getClasspathOperations().replaceTopLevelPackageString(entity, currentText); if (!results.contains(name)) { results.add(name); } } } return results; }
@Override public void generateAllRepositories(JavaPackage repositoriesPackage) { // Getting all project entities Set<ClassOrInterfaceTypeDetails> entities = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation( RooJavaType.ROO_JPA_ENTITY); Iterator<ClassOrInterfaceTypeDetails> it = entities.iterator(); while (it.hasNext()) { ClassOrInterfaceTypeDetails entity = it.next(); // Ignore abstract classes if (entity.isAbstract()) { continue; } // Generating new interface type using entity JavaType interfaceType = new JavaType(repositoriesPackage.getFullyQualifiedPackageName().concat(".") .concat(entity.getType().getSimpleTypeName()).concat("Repository"), repositoriesPackage.getModule()); // Delegate on simple add repository method addRepository(interfaceType, entity.getType(), null, false); } }
/** {@inheritDoc} */ public void createAll(JavaPackage targetPackage) { // Use the TypeLocationService to scan project for all types with a // specific annotation for (JavaType entity : typeLocationService .findTypesWithAnnotation(RooJavaType.ROO_JPA_ACTIVE_RECORD)) { ClassOrInterfaceTypeDetails entityDetails = typeLocationService .getTypeDetails(entity); if (entityDetails.isAbstract()) { // ignore abstract classes continue; } if (targetPackage == null) { create(entity, null); } else { create(entity, generateJavaType(entity, targetPackage)); } } }
if (!targetTypeDetails.isInterface() && !targetTypeDetails.isAbstract() && memberDetails.getConstructors().size() == 0) { bodyBuilder.appendFormalLine(String.format("this.%s = new %s();",
.getMemberHoldingTypeDetails().isAbstract();