All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nasdanika.models.app.gen.LinkSupplierFactoryProviderAdapter Maven / Gradle / Ivy

package org.nasdanika.models.app.gen;

import org.eclipse.emf.common.notify.AdapterFactory;
import org.nasdanika.common.SupplierFactory;
import org.nasdanika.html.jstree.JsTreeNode;
import org.nasdanika.models.app.Action;
import org.nasdanika.models.app.Link;
import org.nasdanika.html.Tag;

public class LinkSupplierFactoryProviderAdapter extends LabelSupplierFactoryProviderAdapter {

	public LinkSupplierFactoryProviderAdapter(M link, AdapterFactory adapterFactory) {
		super(link, adapterFactory);
		if (link instanceof Action) {
			throw new IllegalArgumentException("Actions must be converted to links first: " + link.getText());
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public  SupplierFactory getFactory(Class type) {
		if (type.isAssignableFrom(Tag.class)) {
			return (SupplierFactory) new LinkTagSupplierFactoryAdapter<>((M) getTarget(), adapterFactory);
		}

		// TODO - Card
		
		if (type.isAssignableFrom(JsTreeNode.class)) {
			return (SupplierFactory) new LinkJsTreeNodeSupplierFactoryAdapter<>((M) getTarget());
		}
		
		return super.getFactory(type);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy