/** * @return original meta class or received meta class if it's not extended */ public MetaClass getOriginalOrThisMetaClass(MetaClass metaClass) { MetaClass originalMetaClass = getOriginalMetaClass(metaClass); return originalMetaClass != null ? originalMetaClass : metaClass; }
@Nullable protected MetaClass resolveTargetMetaClass(MetaClass metaClass) { if (metaClass == null) { return null; } MetaClass targetMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (targetMetaClass == null) { targetMetaClass = metaClass; } return targetMetaClass; }
protected MetaClass getOriginalMetaClass(MetaClass metaClass) { MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass == null) { originalMetaClass = metaClass; } return originalMetaClass; } }
@Override public List<String> collectEntityHierarchyNames(String entityName) { MetaClass metaClass = metadata.getClassNN(entityName); List<String> result = new ArrayList<>(); result.add(entityName); result.addAll(metaClass.getDescendants().stream().map(MetadataObject::getName).collect(Collectors.toList())); MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass != null) { result.add(originalMetaClass.getName()); } return result; }
/** * Searches for an original entity for the provided extended entity. * * @param extendedEntityName extended entity * @return original entity or null if the provided entity is not an extension */ @Nullable public MetaClass getOriginalMetaClass(String extendedEntityName) { return getOriginalMetaClass(metadata.getSession().getClassNN(extendedEntityName)); }
protected MetaClass resolveTargetMetaClass(MetaClass metaClass) { if (metaClass == null) { return null; } Metadata metadata = AppBeans.get(Metadata.NAME); MetaClass targetMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (targetMetaClass == null) { targetMetaClass = metaClass; } return targetMetaClass; }
@Nullable protected MetaClass recognizeDeletedEntityMetaClass(String message) { Matcher matcher = getPattern().matcher(message); if (matcher.find()) { String entityName = matcher.group(1); if (!StringUtils.isEmpty(entityName)) { MetaClass metaClass = metadata.getClass(entityName); if (metaClass != null) { MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); metaClass = originalMetaClass != null ? originalMetaClass : metaClass; } return metaClass; } } return null; }
@Nullable protected MetaClass recognizeRelatedEntityMetaClass(String message) { Matcher matcher = getPattern().matcher(message); if (matcher.find()) { String entityName = matcher.group(2); if (!StringUtils.isEmpty(entityName)) { MetaClass metaClass = metadata.getClass(entityName); if (metaClass != null) { MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); metaClass = originalMetaClass != null ? originalMetaClass : metaClass; } return metaClass; } } return null; }
@Override public boolean isEntityOpPermitted(MetaClass metaClass, EntityOp entityOp) { MetaClass originalMetaClass = extendedEntities.getOriginalMetaClass(metaClass); if (originalMetaClass != null) { metaClass = originalMetaClass; } return userSessionSource.getUserSession().isEntityOpPermitted(metaClass, entityOp); }
public String getMetaClassScreenId(MetaClass metaClass, String suffix) { MetaClass screenMetaClass = metaClass; MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass != null) { screenMetaClass = originalMetaClass; } return screenMetaClass.getName() + suffix; }
if (metaClass == null) return null; MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass != null) { String originalId = new StringBuilder(id)
/** * @return a localized name of an entity with given locale or default if null. Messages pack must be located in the same package as entity. */ public String getEntityCaption(MetaClass metaClass, @Nullable Locale locale) { Function<MetaClass, String> getMessage = locale != null ? mc -> messages.getMessage(mc.getJavaClass(), mc.getJavaClass().getSimpleName(), locale) : mc -> messages.getMessage(mc.getJavaClass(), mc.getJavaClass().getSimpleName()); String message = getMessage.apply(metaClass); if (metaClass.getJavaClass().getSimpleName().equals(message)) { MetaClass original = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (original != null) return getMessage.apply(original); } return message; }
@Override @Nullable public EntityDescr getDescrByMetaClass(MetaClass metaClass) { EntityDescr descr = getDescrByEntityName(metaClass.getName()); if (descr == null) { MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass != null) descr = getDescrByEntityName(originalMetaClass.getName()); } return descr; }
protected boolean isEntityAttrPermitted(MetaClass metaClass, MetaPropertyPath propertyPath, EntityAttrAccess access) { MetaClass originalMetaClass = extendedEntities.getOriginalMetaClass(metaClass); if (originalMetaClass != null) { metaClass = originalMetaClass; } return userSessionSource.getUserSession() .isEntityAttrPermitted(metaClass, propertyPath.getMetaProperty().getName(), access); }
String pattern = (String) getMetaAnnotationAttributes(metaClass.getAnnotations(), NamePattern.class).get("value"); if (pattern == null && useOriginal) { MetaClass original = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (original != null) { pattern = (String) getMetaAnnotationAttributes(original.getAnnotations(), NamePattern.class).get("value");
protected MetaClass getMetaClassForLocking(Datasource ds) { Metadata metadata = getBeanLocator().get(Metadata.NAME); // lock original metaClass, if any, because by convention all the configuration is based on original entities MetaClass metaClass = metadata.getExtendedEntities().getOriginalMetaClass(ds.getMetaClass()); if (metaClass == null) { metaClass = ds.getMetaClass(); } return metaClass; }
protected MetaClass getMetaClassForLocking(Entity item) { // lock original metaClass, if any, because by convention all the configuration is based on original entities MetaClass metaClass = AppBeans.get(ExtendedEntities.class).getOriginalMetaClass(item.getMetaClass()); if (metaClass == null) { metaClass = getTable().getDatasource().getMetaClass(); } return metaClass; }
/** * Create a new info instance. * @param entity entity instance * @return info instance */ public static OriginalEntityLoadInfo create(Entity entity) { Objects.requireNonNull(entity, "entity is null"); Metadata metadata = AppBeans.get(Metadata.NAME); MetaClass metaClass = metadata.getSession().getClassNN(entity.getClass()); MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalMetaClass(metaClass); if (originalMetaClass != null) { metaClass = originalMetaClass; } MetaProperty primaryKeyProperty = metadata.getTools().getPrimaryKeyProperty(metaClass); boolean stringKey = primaryKeyProperty != null && primaryKeyProperty.getJavaType().equals(String.class); return new OriginalEntityLoadInfo((UUID) entity.getId(), metaClass, stringKey); } }
protected View getAncestorView(MetaClass metaClass, String ancestor, Set<ViewInfo> visited) { View ancestorView = retrieveView(metaClass, ancestor, visited); if (ancestorView == null) { ExtendedEntities extendedEntities = metadata.getExtendedEntities(); MetaClass originalMetaClass = extendedEntities.getOriginalMetaClass(metaClass); if (originalMetaClass != null) { ancestorView = retrieveView(originalMetaClass, ancestor, visited); } if (ancestorView == null) { // Last resort - search for all ancestors for (MetaClass ancestorMetaClass : metaClass.getAncestors()) { if (ancestorMetaClass.equals(metaClass)) { ancestorView = retrieveView(ancestorMetaClass, ancestor, visited); if (ancestorView != null) break; } } } if (ancestorView == null) { throw new DevelopmentException("No ancestor view found: " + ancestor + " for " + metaClass.getName()); } } return ancestorView; }
protected void initEntityTypeField() { final ExtendedEntities extendedEntities = metadata.getExtendedEntities(); Map<String, MetaClass> options = new TreeMap<>();//the map sorts meta classes by the string key for (MetaClass metaClass : metadata.getTools().getAllPersistentMetaClasses()) { if (metadata.getTools().hasCompositePrimaryKey(metaClass) && !HasUuid.class.isAssignableFrom(metaClass.getJavaClass())) { continue; } options.put(messageTools.getDetailedEntityCaption(metaClass), metaClass); } entityType.setOptionsMap(options); if (category.getEntityType() != null) { entityType.setValue(extendedEntities.getEffectiveMetaClass( extendedEntities.getEffectiveClass(category.getEntityType()))); } entityType.addValueChangeListener(e -> { MetaClass metaClass = (MetaClass) e.getValue(); MetaClass originalClass = extendedEntities.getOriginalMetaClass(metaClass); category.setEntityType(originalClass == null ? metaClass.getName() : originalClass.getName()); }); }