001package org.nasdanika.html.model.bootstrap.gen; 002 003import org.nasdanika.common.ConsumerFactory; 004import org.nasdanika.common.SupplierFactory; 005import org.nasdanika.common.Util; 006import org.nasdanika.emf.FunctionAdapterFactory; 007import org.nasdanika.html.HTMLElement; 008import org.nasdanika.html.HTMLPage; 009import org.nasdanika.html.model.bootstrap.Appearance; 010import org.nasdanika.html.model.bootstrap.BootstrapElement; 011import org.nasdanika.html.model.bootstrap.BootstrapPackage; 012import org.nasdanika.html.model.bootstrap.Page; 013import org.nasdanika.html.model.bootstrap.TableCell; 014import org.nasdanika.html.model.bootstrap.TableHeader; 015import org.nasdanika.html.model.bootstrap.TableRow; 016import org.nasdanika.html.model.bootstrap.TableSection; 017import org.nasdanika.html.model.html.gen.HtmlAdapterFactory; 018 019/** 020 * Provides adapters for the Engineering model elements. 021 * @author Pavel 022 * 023 */ 024public class BootstrapAdapterFactory extends HtmlAdapterFactory { 025 026 public BootstrapAdapterFactory() { 027 ClassLoader classLoader = getClassLoader(); 028 029 registerAdapterFactory( 030 new FunctionAdapterFactory<SupplierFactory<HTMLPage>, Page>( 031 BootstrapPackage.Literals.PAGE, 032 Util.getSupplierFactoryClass(HTMLPage.class), 033 classLoader, 034 PageSupplierFactoryAdapter::new)); 035 036 @SuppressWarnings({ "unchecked", "rawtypes" }) 037 Class<HTMLElement<?>> htmlElementClass = (Class) HTMLElement.class; 038 039 registerAdapterFactory( 040 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, Appearance>( 041 BootstrapPackage.Literals.APPEARANCE, 042 Util.getConsumerFactoryClass(htmlElementClass), 043 classLoader, 044 AppearanceConsumerFactoryAdapter::new)); 045 046 registerAdapterFactory( 047 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, BootstrapElement>( 048 BootstrapPackage.Literals.BOOTSTRAP_ELEMENT, 049 Util.getConsumerFactoryClass(htmlElementClass), 050 classLoader, 051 e -> new BootstrapElementConsumerFactoryAdapter<>(e, this))); 052 053 registerAdapterFactory( 054 new FunctionAdapterFactory<SupplierFactory<org.nasdanika.html.Tag>, org.nasdanika.html.model.bootstrap.Tag>( 055 BootstrapPackage.Literals.TAG, 056 Util.getSupplierFactoryClass(org.nasdanika.html.Tag.class), 057 classLoader, 058 e -> new TagSupplierFactoryAdapter<>(e, this))); 059 060 registerAdapterFactory( 061 new FunctionAdapterFactory<SupplierFactory<HTMLElement<?>>, org.nasdanika.html.model.bootstrap.Modal>( 062 BootstrapPackage.Literals.MODAL, 063 Util.getSupplierFactoryClass(htmlElementClass), 064 classLoader, 065 e -> new ModalSupplierFactoryAdapter(e, this))); 066 067 registerAdapterFactory( 068 new FunctionAdapterFactory<SupplierFactory<org.nasdanika.html.Tag>, org.nasdanika.html.model.bootstrap.Alert>( 069 BootstrapPackage.Literals.ALERT, 070 Util.getSupplierFactoryClass(org.nasdanika.html.Tag.class), 071 classLoader, 072 e -> new AlertSupplierFactoryAdapter(e, this))); 073 074 registerAdapterFactory( 075 new FunctionAdapterFactory<SupplierFactory<org.nasdanika.html.Tag>, org.nasdanika.html.model.bootstrap.Carousel>( 076 BootstrapPackage.Literals.CAROUSEL, 077 Util.getSupplierFactoryClass(org.nasdanika.html.Tag.class), 078 classLoader, 079 e -> new CarouselSupplierFactoryAdapter(e, this))); 080 081 registerAdapterFactory( 082 new FunctionAdapterFactory<SupplierFactory<org.nasdanika.html.Tag>, org.nasdanika.html.model.bootstrap.Slide>( 083 BootstrapPackage.Literals.SLIDE, 084 Util.getSupplierFactoryClass(org.nasdanika.html.Tag.class), 085 classLoader, 086 e -> new SlideSupplierFactoryAdapter(e, this))); 087 088 registerAdapterFactory( 089 new FunctionAdapterFactory<SupplierFactory<HTMLElement<?>>, org.nasdanika.html.model.bootstrap.Card>( 090 BootstrapPackage.Literals.CARD, 091 Util.getSupplierFactoryClass(htmlElementClass), 092 classLoader, 093 e -> new CardSupplierFactoryAdapter(e, this))); 094 095 // Table 096 registerAdapterFactory( 097 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, TableHeader>( 098 BootstrapPackage.Literals.TABLE_HEADER, 099 Util.getConsumerFactoryClass(htmlElementClass), 100 classLoader, 101 e -> new TableHeaderConsumerFactoryAdapter(e, this))); 102 103 registerAdapterFactory( 104 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, TableSection>( 105 BootstrapPackage.Literals.TABLE_SECTION, 106 Util.getConsumerFactoryClass(htmlElementClass), 107 classLoader, 108 e -> new TableSectionConsumerFactoryAdapter(e, this))); 109 110 registerAdapterFactory( 111 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, TableRow>( 112 BootstrapPackage.Literals.TABLE_ROW, 113 Util.getConsumerFactoryClass(htmlElementClass), 114 classLoader, 115 e -> new TableRowConsumerFactoryAdapter(e, this))); 116 117 registerAdapterFactory( 118 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, TableCell>( 119 BootstrapPackage.Literals.TABLE_CELL, 120 Util.getConsumerFactoryClass(htmlElementClass), 121 classLoader, 122 e -> new TableCellConsumerFactoryAdapter(e, this))); 123 124 registerAdapterFactory( 125 new FunctionAdapterFactory<ConsumerFactory<HTMLElement<?>>, org.nasdanika.html.model.bootstrap.Table>( 126 BootstrapPackage.Literals.TABLE, 127 Util.getConsumerFactoryClass(htmlElementClass), 128 classLoader, 129 e -> new TableConsumerFactoryAdapter(e, this))); 130 131 registerAdapterFactory( 132 new FunctionAdapterFactory<SupplierFactory<HTMLElement<?>>, org.nasdanika.html.model.bootstrap.Table>( 133 BootstrapPackage.Literals.TABLE, 134 Util.getSupplierFactoryClass(htmlElementClass), 135 classLoader, 136 e -> new TableSupplierFactoryAdapter(e, this))); 137 138 } 139 140}