public String getMainFormName() { return SFormUtil.getTypeName((Class<? extends SType<?>>) mainForm); } }
private String formatLabel(Class<? extends STypeComposite> c) { String typeName = SFormUtil.getTypeName((Class<? extends SType<?>>) c); return SFormUtil.getTypeLabel(c).map(l -> l + " (" + typeName + ")").orElse(typeName); }
@SuppressWarnings("unchecked") private static String getTypeNameInternal(@Nonnull Class<?> typeClass) { Class<? extends SPackage> packageClass = getTypePackage((Class<? extends SType<?>>) typeClass); return getInfoPackageName(packageClass) + '.' + getTypeSimpleName((Class<? extends SType<?>>) typeClass); }
/** * Retorna o nome completo do tipo sem precisar carregar a definição * mediante a leitura das anotações {@link SInfoType} e {@link SInfoPackage}. */ public static String getTypeName(Class<? extends SType<?>> typeClass) { Class<? extends SPackage> packageClass = getTypePackage(typeClass); String packageName = getInfoPackageNameOrException(packageClass); return packageName + '.' + getTypeSimpleName(typeClass); }
protected SType(@Nullable String simpleName, @Nullable Class<? extends I> instanceClass) { if (simpleName == null) { this.nameSimple = SFormUtil.getTypeSimpleName(getClass()); } else { this.nameSimple = new SimpleName(simpleName); } this.instanceClass = instanceClass; }
public static String getLabelForType(String defaultString, SType<?> type) { if (defaultString == null) { String label = type.asAtr().getLabel(); if (label == null) { label = SFormUtil.getTypeLabel((Class<? extends SType<?>>) type.getClass()).orElse(null); if (label == null) { label = type.getNameSimple(); } } return label; } return defaultString; } }
@Nonnull @SuppressWarnings("unchecked") static Class<? extends SPackage> getPackageClassOrException(@Nonnull Class<? extends SScope> scopeClass) { if (SPackage.class.isAssignableFrom(scopeClass)) { return (Class<SPackage>) scopeClass; } else if (SType.class.isAssignableFrom(scopeClass)) { return getTypePackage((Class<SType<?>>) scopeClass); } else { throw new SingularFormException("Unsupported class: " + scopeClass.getName()); } }
protected void addForms(MenuGroup menuGroup) { for (Class<? extends SType<?>> formClass : singularServerConfiguration.getFormTypes()) { SInfoType annotation = formClass.getAnnotation(SInfoType.class); String name = SFormUtil.getTypeName(formClass); Optional<SType<?>> sTypeOptional = singularFormConfig.getTypeLoader().loadType(name); if (sTypeOptional.isPresent()) { SType<?> sType = sTypeOptional.get(); Class<? extends SType<?>> sTypeClass = (Class<? extends SType<?>>) sType.getClass(); String label = sType.asAtr().getLabel(); menuGroup.getForms().add(new FormDTO(name, SFormUtil.getTypeSimpleName(sTypeClass), label, annotation.newable())); } } }
private void add(Class<? extends SType<?>> type) { String typeName = SFormUtil.getTypeName(type); add(typeName, () -> { SDictionary d = SDictionary.create(); d.loadPackage(SFormUtil.getTypePackage(type)); return d.getType(type); }); }
private FormTypeEntity getOrCreateNewFormTypeEntity(final SType<?> type) { FormTypeEntity formTypeEntity = formTypeDAO.findFormTypeByAbbreviation(type.getName()); if (formTypeEntity == null) { formTypeEntity = new FormTypeEntity(); formTypeEntity.setAbbreviation(type.getName()); formTypeEntity.setLabel(SFormUtil.getTypeLabel(type.getClass()) .orElse(SFormUtil.getTypeSimpleName((Class<? extends SType<?>>) type.getClass()))); formTypeEntity.setCacheVersionNumber(1L);//TODO VINICIUS.NUNES formTypeDAO.saveOrUpdate(formTypeEntity); } return formTypeEntity; }
@Nonnull @SuppressWarnings("unchecked") static String getScopeNameOrException(@Nonnull Class<? extends SScope> scopeClass) { if (SPackage.class.isAssignableFrom(scopeClass)) { return getInfoPackageName((Class<SPackage>) scopeClass); } else if (SType.class.isAssignableFrom(scopeClass)) { return getTypeName((Class<SType<?>>) scopeClass); } else { throw new SingularFormException("Unsupported class: " + scopeClass.getName()); } }
/** * <p> * Retorna o path da instancia atual desde o raiz, incluindo o nome da * instancia raiz. * </p> * Exemplos, supundo que enderecos e experiencias estao dentro de um * elemento raiz (vamos dizer chamado cadastro): * </p> * <p> * <pre> * "cadastro.enderecos[0].rua" * "cadastro.experiencias[0].empresa.nome" * "cadastro.experiencias[1].empresa.ramo" * </pre> */ public final String getPathFull() { return SFormUtil.generatePath(this, i -> i == null); }
public static String generateUserFriendlyPath(SInstance instance) { return generateUserFriendlyPath(instance, null); }
private synchronized static Map<String, Class<? extends SPackage>> getSingularPackages() { if (singularPackages == null) { singularPackages = SupplierUtil.cached(() -> { Builder<String, Class<? extends SPackage>> builder = ImmutableMap.builder(); addPackage(builder, SPackageUtil.class); addPackage(builder, SPackageBootstrap.class); addPackage(builder, SPackagePersistence.class); addPackage(builder, SPackageCountryBrazil.class); return builder.build(); }); } return singularPackages.get(); }
private List<String> listAllTypeNames() { return singularServerConfiguration.getFormTypes() .stream() .map(clazz -> SFormUtil.getTypeSimpleName(clazz).toUpperCase()) .collect(Collectors.toList()); }
public static String getLabelForType(String defaultString, SType<?> type) { if (defaultString == null) { String label = type.asAtr().getLabel(); if (label == null) { label = SFormUtil.getTypeLabel(type.getClass()).orElse(null); if (label == null) { label = type.getNameSimple(); } } return label; } return defaultString; } }
/** * Recupera o tipo, já carregado no dicionário, da classe informada. Senão * estiver carregado ainda, busca carregá-lo e as definições do pacote a que * pertence. Senão encontrar no dicionário e nem conseguir encontrar para * carregar, então dispara Exception. */ @Nonnull public <T extends SType<?>> T getType(@Nonnull Class<T> typeClass) { Objects.requireNonNull(typeClass); SType<?> typeRef = typeByClass.get(typeClass); if (typeRef == null) { Class<? extends SPackage> packageClass = SFormUtil.getTypePackage(typeClass); SPackage typePackage = loadPackage(packageClass); typeRef = typeByClass.get(typeClass); if (typeRef == null) { //O tipo é de carga lazy e não se auto registrou no pacote, então regista agora typeRef = registerLazyTypeIntoPackage(typePackage, typeClass); } } return typeClass.cast(typeRef); }
/** * <p> * Retorna o path da instancia atual desde o raiz, incluindo o nome da * instancia raiz. * </p> * Exemplos, supundo que enderecos e experiencias estao dentro de um * elemento raiz (vamos dizer chamado cadastro): * </p> * <p> * <pre> * "cadastro.enderecos[0].rua" * "cadastro.experiencias[0].empresa.nome" * "cadastro.experiencias[1].empresa.ramo" * </pre> */ public final String getPathFull() { return SFormUtil.generatePath(this, i -> i == null); }
public static String generateUserFriendlyPath(SInstance instance) { return generateUserFriendlyPath(instance, null); }
private synchronized static Map<String, Class<? extends SPackage>> getSingularPackages() { if (singularPackages == null) { singularPackages = SupplierUtil.cached(() -> { Builder<String, Class<? extends SPackage>> builder = ImmutableMap.builder(); addPackage(builder, SPackageUtil.class); addPackage(builder, SPackageBootstrap.class); addPackage(builder, SPackageCountryBrazil.class); return builder.build(); }); } return singularPackages.get(); }