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}