/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.common.product; /** * An <code>IProductCustomizer</code> provides the ability to customize the Teiid Designer product. * * @since 8.0 */ public interface IProductCustomizer { /** * Obtains the product identifier. * * @return the ID (never <code>null</code>) * @since 4.3 */ String getProductId(); /** * Informs the customizer to load it's product customizations. * * @since 4.3 */ void loadCustomizations(); /** * Indicates if the product supports the specified context. * * @param theContext the context being checked * @return <code>true</code> if supported; <code>false</code> otherwise. * @throws IllegalArgumentException if an input parameter is <code>null</code> * @since 4.3 */ boolean supports( IProductContext theContext ); /** * Indicates if the product supports the specified value in the specified context. * * @param theContext the context being checked * @param theValue the value being checked * @return <code>true</code> if supported; <code>false</code> otherwise. * @throws IllegalArgumentException if an input parameter is <code>null</code> * @since 4.3 */ boolean supports( IProductContext theContext, Object theValue ); /** * Obtains the product's primary navigation view id. This is required by some actions so they can programmatically set * selection or reveal specific objects... typically in a tree view. The default will be eclipse's resource navigator. * * @return the ID * @since 4.3 */ IProductCharacteristics getProductCharacteristics(); }