public TestSecurity(UserSessionSource sessionSource, Metadata metadata, ExtendedEntities extendedEntities) { this.userSessionSource = sessionSource; this.metadata = metadata; this.metadataTools = metadata.getTools(); this.extendedEntities = extendedEntities; } }
protected String getInstanceCaption(V instance) { if (instance == null) { return ""; } if (optionCaptionProvider != null) { return optionCaptionProvider.apply(instance); } return metadata.getTools().getInstanceName(instance); }
public Collection<MetaClassInfo> getAllMetaClassesInfo() { Set<MetaClass> metaClasses = new HashSet<>(metadata.getTools().getAllPersistentMetaClasses()); metaClasses.addAll(metadata.getTools().getAllEmbeddableMetaClasses()); return metaClasses.stream() .filter(metaClass -> metadata.getExtendedEntities().getExtendedClass(metaClass) == null) .map(MetaClassInfo::new) .collect(Collectors.toList()); }
protected void checkCompositePrimaryKey(Entity entity) { if (metadata.getTools().hasCompositePrimaryKey(entity.getMetaClass()) && !(entity instanceof HasUuid)) { throw new UnsupportedOperationException(format("Entity %s has no persistent UUID attribute", entity)); } }
@Override @Deprecated public <T extends Entity> T merge(T entity, @Nullable View view) { T managed = merge(entity); if (view != null) { metadata.getTools().traverseAttributesByView(view, managed, (e, p) -> { /* do nothing, just fetch */ }); } return managed; }
protected void initEnumsLookup() { Map<String, String> enumsOptionsMap = new TreeMap<>(); for (Class enumClass : metadata.getTools().getAllEnums()) { String enumLocalizedName = messages.getMessage(enumClass, enumClass.getSimpleName()); enumsOptionsMap.put(enumLocalizedName + " (" + enumClass.getSimpleName() + ")", enumClass.getCanonicalName()); } enumeration.setOptionsMap(enumsOptionsMap); }
protected void addSystemPropertiesFrom(Class<?> baseClass, Class<?> entityClass, MetaClass metaClass, Metadata metadata, Set<String> result) { if (baseClass.isAssignableFrom(entityClass)) { MetadataTools metadataTools = metadata.getTools(); for (String property : getInterfaceProperties(baseClass)) { MetaProperty metaProperty = metaClass.getProperty(property); if (metaProperty != null && metadataTools.isPersistent(metaProperty)) { result.add(property); } } } }
public void setEntity(Entity entity) { this.entity = entity; this.metaClass = metadata.getSession().getClass(entity.getClass()); primaryKeyName = metadata.getTools().getPrimaryKeyName(metaClass); String storeName = metadata.getTools().getStoreName(metaClass); entityManager = persistence.getEntityManager(storeName == null ? Stores.MAIN : storeName); }
protected SendingMessage createClone(SendingMessage srcMessage) { SendingMessage clonedMessage = metadata.getTools().copy(srcMessage); List<SendingAttachment> clonedList = new ArrayList<>(); for (SendingAttachment srcAttach : srcMessage.getAttachments()) { SendingAttachment clonedAttach = metadata.getTools().copy(srcAttach); clonedAttach.setMessage(null); clonedAttach.setMessage(clonedMessage); clonedList.add(clonedAttach); } clonedMessage.setAttachments(clonedList); return clonedMessage; }
@Override public boolean commit() { if (super.commit()) { metadata.getTools().copy(getItem(), parameter); return true; } return false; }
/** * Defensive copy */ protected Report getReportForPrinting(Report report) { Report copy = metadata.getTools().copy(report); copy.setIsTmp(report.getIsTmp()); return copy; }
@Override public boolean isEntityAttrReadPermitted(MetaPropertyPath mpp) { MetaClass propertyMetaClass = metadata.getTools().getPropertyEnclosingMetaClass(mpp); return isEntityOpPermitted(propertyMetaClass, EntityOp.READ) && isEntityAttrPermitted(propertyMetaClass, mpp, EntityAttrAccess.VIEW); }
@Override public boolean isEntityAttrUpdatePermitted(MetaPropertyPath mpp) { MetaClass propertyMetaClass = metadata.getTools().getPropertyEnclosingMetaClass(mpp); if (metadata.getTools().isEmbeddable(propertyMetaClass)) { return isEntityOpPermitted(propertyMetaClass, EntityOp.UPDATE) && isEntityAttrPermitted(propertyMetaClass, mpp, EntityAttrAccess.MODIFY); } return (isEntityOpPermitted(propertyMetaClass, EntityOp.CREATE) || isEntityOpPermitted(propertyMetaClass, EntityOp.UPDATE)) && isEntityAttrPermitted(propertyMetaClass, mpp, EntityAttrAccess.MODIFY); }
private String getCollectionString(Object collection) { if (DynamicAttributesUtils.isDynamicAttribute(propertyName)) { Metadata metadata = AppBeans.get(Metadata.class); com.haulmont.chile.core.model.MetaClass metaClass = metadata.getClassNN(metaClassName); MetaPropertyPath path = DynamicAttributesUtils.getMetaPropertyPath(metaClass, propertyName); return metadata.getTools().format(collection, path.getMetaProperty()); } return String.valueOf(beforeValue); }
@Override public void setItem(T item) { if (getItem() != null) { metadata.getTools().copy(item, getItem()); itemsToUpdate.add(item); } else { final Instance parentItem = masterDs.getItem(); parentItem.setValue(metaProperty.getName(), item); } setModified(true); }
private void setMultipleTableConstraintDependency(MetaClass metaClass, ClassDescriptor desc) { InheritancePolicy policy = desc.getInheritancePolicyOrNull(); if (policy != null && policy.isJoinedStrategy() && policy.getParentClass() != null) { boolean hasOneToMany = metaClass.getOwnProperties().stream().anyMatch(metaProperty -> metadata.getTools().isPersistent(metaProperty) && metaProperty.getRange().isClass() && metaProperty.getRange().getCardinality() == Range.Cardinality.ONE_TO_MANY); if (hasOneToMany) { desc.setHasMultipleTableConstraintDependecy(true); } } }
protected boolean isEntityAvailableForFts() { return adapter != null && ftsFilterHelper != null && ftsFilterHelper.isEntityIndexed(adapter.getMetaClass().getName()) && Stores.isMain(metadata.getTools().getStoreName(adapter.getMetaClass())); }
@Override public void setItem(Entity item) { Entity newItem = valuesFormatsDs.getDataSupplier().newInstance(valuesFormatsDs.getMetaClass()); metadata.getTools().copy(item, newItem); ((ReportValueFormat) newItem).setId((UUID) item.getId()); super.setItem(newItem); } }
protected void setReferenceNull(Entity entity, MetaProperty property) { Range range = property.getRange(); if (metadata.getTools().isOwningSide(property) && !range.getCardinality().isMany()) { if (PersistenceHelper.isLoaded(entity, property.getName())) { entity.setValue(property.getName(), null); } else { hardSetReferenceNull(entity, property); } } }
protected void copyViewProperties(View src, View target, MetaClass metaClass) { for (ViewProperty viewProperty : src.getProperties()) { MetaProperty metaProperty = metaClass.getProperty(viewProperty.getName()); if (metaProperty == null || !metadata.getTools().isSystemLevel(metaProperty)) { if (!target.containsProperty(viewProperty.getName())) { target.addProperty(viewProperty.getName(), viewProperty.getView(), viewProperty.getFetchMode()); } } } }