com.citytechinc.cq.component.dialog.maker.WidgetMaker Maven / Gradle / Ivy
/**
* Copyright 2017 ICF Olson
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.citytechinc.cq.component.dialog.maker;
import java.lang.reflect.InvocationTargetException;
import javassist.CannotCompileException;
import javassist.NotFoundException;
import com.citytechinc.cq.component.dialog.DialogElement;
import com.citytechinc.cq.component.dialog.exception.InvalidComponentFieldException;
/**
* A WidgetMaker is a class which is intended to create a single Widget based on
* an annotated Field in a Component Class. Such a Maker will return an object
* implementing DialogElement suitable for addition into a Dialog.
*
* Widget Makers are tied to concrete widget types by way of a
* {@link com.citytechinc.cq.component.annotations.config.Widget} annotation.
*/
public interface WidgetMaker {
/**
*
* @return A constructed DialogElement Widget
*
* @throws InvalidComponentFieldException
* @throws NotFoundException
* @throws ClassNotFoundException
* @throws SecurityException
* @throws CannotCompileException
* @throws NoSuchFieldException
* @throws InstantiationException
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws InvocationTargetException
* @throws NoSuchMethodException
*/
public DialogElement make() throws InvalidComponentFieldException, NotFoundException, ClassNotFoundException,
SecurityException, CannotCompileException, NoSuchFieldException, InstantiationException,
IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException;
}