/** * Constructs a new {@code CreateQueryComponentAction} instance. */ public CreateQueryComponentAction() { queryComponentDescriptorFactory = new BasicQueryComponentDescriptorFactory(); }
private IComponentDescriptor<IQueryComponent> createOrGetQueryComponentDescriptor( IComponentDescriptorProvider<? extends IComponent> componentDescriptorProvider) { IComponentDescriptor<IQueryComponent> queryComponentDescriptor; synchronized (registry) { queryComponentDescriptor = registry.get(componentDescriptorProvider); if (queryComponentDescriptor == null) { queryComponentDescriptor = instanciateQueryComponentDescriptor(componentDescriptorProvider, refRegistry); registry.put(componentDescriptorProvider, queryComponentDescriptor); } } return queryComponentDescriptor; }
/** * Creates basic query component descriptors. * <p/> * {@inheritDoc} */ @Override public IComponentDescriptor<IQueryComponent> createQueryComponentDescriptor( IComponentDescriptorProvider<IComponent> componentDescriptorProvider) { IComponentDescriptorProvider<? extends IComponent> realComponentDescriptorProvider; if (componentDescriptorProvider.getComponentDescriptor() instanceof RefQueryComponentDescriptor<?>) { realComponentDescriptorProvider = ((RefQueryComponentDescriptor<?>) componentDescriptorProvider .getComponentDescriptor()).getQueriedComponentsDescriptor(); } else { realComponentDescriptorProvider = componentDescriptorProvider; } return createOrGetQueryComponentDescriptor(realComponentDescriptorProvider); }
/** * Create a basic query component reference descriptor. * <p/> * {@inheritDoc} */ @Override public IReferencePropertyDescriptor<IQueryComponent> createQueryComponentReferenceDescriptor( String referencePropertyName, IComponentDescriptorProvider<IComponent> componentDescriptorProvider) { BasicReferencePropertyDescriptor<IQueryComponent> referencePropertyDescriptor = new BasicReferencePropertyDescriptor<>(); referencePropertyDescriptor.setName(referencePropertyName); referencePropertyDescriptor.setMandatory(false); // since it cannot be auto-created by the framework referencePropertyDescriptor.setReferencedDescriptor(createQueryComponentDescriptor(componentDescriptorProvider)); return referencePropertyDescriptor; }
/** * Gets the queryComponentDescriptorFactory. * * @return the queryComponentDescriptorFactory. */ protected IQueryComponentDescriptorFactory getQueryComponentDescriptorFactory() { if (queryComponentDescriptorFactory == null) { queryComponentDescriptorFactory = new BasicQueryComponentDescriptorFactory(); } return queryComponentDescriptorFactory; }