protected void addMultiplePropertyDescriptors(String includeRe, String excludeRe, List<AbstractConditionDescriptor> descriptors, Filter filter) { List<String> includedProps = new ArrayList<>(); Pattern inclPattern = Pattern.compile(includeRe.replace(" ", "")); for (MetaProperty property : entityMetaClass.getProperties()) { if (!isPropertyAllowed(entityMetaClass, property)) { continue; } if (inclPattern.matcher(property.getName()).matches()) { includedProps.add(property.getName()); } } Pattern exclPattern = null; if (!StringUtils.isBlank(excludeRe)) { exclPattern = Pattern.compile(excludeRe.replace(" ", "")); } for (String prop : includedProps) { if (exclPattern == null || !exclPattern.matcher(prop).matches()) { Class<? extends FrameOwner> controllerClass = filter.getFrame().getFrameOwner().getClass(); String messagesPack = UiControllerUtils.getPackage(controllerClass); // todo rework AbstractConditionDescriptor conditionDescriptor = new PropertyConditionDescriptor(prop, null, messagesPack, filterComponentName, entityMetaClass, entityAlias); descriptors.add(conditionDescriptor); } } }
protected MessageBundle createMessageBundle(@SuppressWarnings("unused") AnnotatedElement element, Frame frame) { MessageBundle messageBundle = beanLocator.getPrototype(MessageBundle.NAME); Class<? extends FrameOwner> screenClass = frame.getFrameOwner().getClass(); String packageName = UiControllerUtils.getPackage(screenClass); messageBundle.setMessagesPack(packageName); if (frame instanceof Component.HasXmlDescriptor) { Element xmlDescriptor = ((Component.HasXmlDescriptor) frame).getXmlDescriptor(); if (xmlDescriptor != null) { String messagePack = xmlDescriptor.attributeValue("messagesPack"); if (messagePack != null) { messageBundle.setMessagesPack(messagePack); } } } return messageBundle; }
String templatePath = UiDescriptorUtils.getInferredTemplate(annotation, controllerClass); if (!templatePath.startsWith("/")) { String packageName = UiControllerUtils.getPackage(controllerClass); if (StringUtils.isNotEmpty(packageName)) { String relativePath = packageName.replace('.', '/');
protected AbstractCondition createCondition(ConditionType type, Element element, Filter filter, String xml) { String filterComponentName = filter.getId(); Class<? extends FrameOwner> controllerClass = filter.getFrame().getFrameOwner().getClass(); String messagesPack = UiControllerUtils.getPackage(controllerClass); // todo rework switch (type) { case GROUP: return new GroupCondition(element, filterComponentName); case PROPERTY: return new PropertyCondition(element, messagesPack, filterComponentName, ((FilterImplementation) filter).getEntityMetaClass()); case CUSTOM: return new CustomCondition(element, messagesPack, filterComponentName, ((FilterImplementation) filter).getEntityMetaClass()); case RUNTIME_PROPERTY: return new DynamicAttributesCondition(element, messagesPack, filterComponentName, ((FilterImplementation) filter).getEntityMetaClass()); case FTS: return new FtsCondition(element, messagesPack, filterComponentName, ((FilterImplementation) filter).getEntityMetaClass()); default: throw new IllegalStateException(String.format("Unknown condition type: %s in %s", type, xml)); } }
String messagesPack = UiControllerUtils.getPackage(controllerClass); // todo rework
String messagesPack = UiControllerUtils.getPackage(controllerClass); // todo rework